html图片重叠轮播,原生js实现图片层叠轮播切换效果
本文实例介绍了js焦点图片层叠轮播切换滚动效果,分享给大家供大家参考,具体内容如下
效果图:
功能描述:
自定义图片尺寸;
每隔一段时间自动滚动图片;
每次动画执行的时候改变图片的位置,宽高以及其它属性也要跟随着变化;
鼠标移上图片,显示当前图片的详细信息;
点击按钮向前向后滚动;
详细代码:
html代码:
*{margin:0px; padding:0px;font-family:"Microsoft YaHei"}
ol,ul{list-style:none;}
cite,em,i{font-style:normal}
* html .clearfix { height: 1%; }
.clearfix { display: block; }
.myclearfix:after { clear:both; visibility:hidden;}
.myclearfix { display: block; _display:inline-block; overflow:hidden;}
#largerImages{position:relative;width:1000px;margin:0 auto;height:520px;overflow:hidden;}
#largerImages li{box-shadow:1px 1px 12px rgba(200, 200, 200, 1);width:368px;height:368px; position:absolute;top:10px;overflow:hidden;color:#fff;}
#largerImages li .cover{background-color:#333;opacity:0.5;filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);height:100%;width:100%;display:block;position:absolute;top:0px;}
#largerImages img{border:0px;width:100%;height:100%;}
#largerImages .previous{left:13%;}
#largerImages .next{left:53%;}
#largerImages .previous,#largerImages .next{cursor:pointer; position:absolute;z-index:100; top:25%;height:60px;line-height:60px;width:30px;color:#fff;text-align:center;}
#largerImages .previous span,#largerImages .next span{position:absolute;top:0px;left:0px;height:100%;width:100%;display:block;background-color:#000;opacity:0.4;filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);}
#largerImages .previous em,#largerImages .next em{height:100%;width:100%;display:block;position:absolute;top:0px;left:0px;font-size:26px; font-family: "宋体";}
#largerImages li span,#largerImages li em{position:absolute;left:0px;width:100%;height:30px;line-height:30px; bottom:0px;text-align:center;display:block;color:#fff;}
#largerImages li span{background-color:#000;opacity:0.5;filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);font-size:12px;}
<
>
主播昵称
主播昵称
主播昵称
主播昵称
主播昵称
seajs.use(['lib/jquery/1.11.x/index.js','_example/rotateBox/index.js'],function($,carousel) {
carousel.init({
wapper: $('#largerImages'),
//所有图片以此来按比例定义宽高
imgWidth: 450,
imgHeight: 300,
spacing: {
left: 60, //每张图片左边距离相差多少
top: 30, //每张图片顶部距离相差多少
width: 60, //每张图片宽度相差多少
height: 60 //每张图片高度相差多少
}
});
});
js 代码:
define(function(require, exports, module) {
'use strict';
var $ = require('lib/jquery/1.11.x/index.js');
var carousel = {
_initData:false, //判断动画是否执行完毕
init: function(options) {
var t = this;
t._wapper = options.wapper;
t._grids = t._wapper.find('li');
t._gridsWidth = options.imgWidth;
t._gridsHeight = options.imgHeight;
t._spacing = options.spacing;
//取居中图片
t._middle = t._grids.length % 2 == 0 ? t._grids.length / 2 : parseInt(t._grids.length / 2);
//存放各图片参数
t._arr = {
left: [],
top: [],
zIndex: [],
width: [],
height: []
}
if ( !t._initData ) {
var interval;
interval = setInterval(function(){
$('.previous').click();
},10000);
}
t._largerImages();
t._reposition();
t._mouseEnter(t._grids) //鼠标移动上去显示主播昵称
},
//初始化定位:
_largerImages: function() {
var t = this;
var front = t._middle;
var avtive = t._middle;
var last = t._grids.length;
t._grids.each( function(i, img) {
if (i == t._middle) {
t._grids.eq(i).css({
zIndex: 99,
top: 0,
left: t._spacing.left * i,
height: t._gridsHeight,
width: t._gridsWidth
});
} else if ( i < t._middle ) {
t._grids.eq(i).css({
zIndex: i,
top: t._spacing.top * front,
left: t._spacing.left * i,
height: t._gridsHeight - t._spacing.height * front,
width: t._gridsWidth - t._spacing.width * front
});
front--;
} else {
last --;
t._grids.eq(last).css({
zIndex: i,
top: t._spacing.top * avtive,
left: t._spacing.left * last + t._spacing.width * avtive,
height: t._gridsHeight - t._spacing.height * avtive,
width: t._gridsWidth - t._spacing.width * avtive
});
avtive --;
};
});
},
//翻页动画
_reposition: function() {
var t = this;
//把各属性值传到数组里面
t._grids.each( function(i,img) {
t._arr.left.push(t._grids.eq(i).position().left);
t._arr.top.push(t._grids.eq(i).position().top);
t._arr.width.push(t._grids.eq(i).width());
t._arr.height.push(t._grids.eq(i).height());
t._arr.zIndex.push(t._grids.eq(i).css('z-index'));
});
//向前翻页
$('.previous').bind('click',function() {
if ( !t._initData && t._arr.left.length != 0) {
t._initData = true;
//重新获取选择器
var grids = t._wapper.find('li');
for (var i = 1; i < grids.length ; i ++) {
grids.eq(i).animate({
zIndex: t._arr.zIndex[i - 1],
left: t._arr.left[i - 1],
top: t._arr.top[i - 1],
width: t._arr.width[i - 1],
height: t._arr.height[i - 1],
},200,
function() {
t._initData = false;
grids.find('i').addClass('cover');
grids.eq(t._middle + 1).find('i').removeClass('cover');
});
};
grids.eq(0).animate({
left: t._arr.left[ grids.length - 1],
top: t._arr.top[ grids.length - 1],
width: t._arr.width[ grids.length - 1],
height: t._arr.height[ grids.length - 1],
zIndex: t._arr.zIndex[ grids.length - 1]
},200,
function(){
$(this).appendTo(t._wapper);
});
}
});
//向后翻页
$('.next').bind('click',function() {
if ( !t._initData && t._arr.left.length != 0) {
t._initData = true;
//重新获取选择器
var grids = t._wapper.find('li');
for (var i = 0; i < grids.length - 1; i ++) {
grids.eq(i).animate({
left: t._arr.left[i + 1],
top: t._arr.top[i + 1],
width: t._arr.width[i + 1],
height: t._arr.height[i + 1],
zIndex: t._arr.zIndex[i + 1]
},200,function() {
t._initData = false;
});
};
grids.eq(grids.length - 1).animate({
left: t._arr.left[0],
top: t._arr.top[0],
width: t._arr.width[0],
height: t._arr.height[0],
zIndex: t._arr.zIndex[0]
},200,
function(){
$(this).prependTo(t._wapper);
grids.find('i').addClass('cover');
grids.eq(t._middle - 1).find('i').removeClass('cover');
});
}
});
},
//鼠标进入图片效果
_mouseEnter: function(grids) {
grids.each(function(i){
$(this).mouseenter(function() {
$(this).find('.tab_name').animate({
bottom:0,opacity: 'show'
},200);
});
$(this).mouseleave(function() {
$(this).find('.tab_name').animate({
bottom:-50,opacity: 'hide'
},200);
});
});
},
};
return carousel;
});
以上就是本文的全部内容,希望对大家的学习有所帮助。
html图片重叠轮播,原生js实现图片层叠轮播切换效果相关推荐
- html原生js实现图片轮播,原生JS实现图片轮播切换效果
原生JS实现图片轮播切换效果 2019-01-06 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了原生JS实现图片轮播切换效果,编程之家小编觉得挺不错的,现在分 ...
- html图片自动左右轮播,原生JS实现图片左右轮播
本效果使用js实现,当图片移动到200像素后回到0像素再向右移动200像素一直左右移动,不需要marquee标签. 完整的HTML代码如下,保存到HTML文档打开可以查看效果: JS使图片左右移动_何 ...
- html5图片无限循环播放,原生js实现无限循环轮播图效果
知识要点 1.实现无限循环的原理: 以偏移的距离来判断是否跳回第一张和最后一张 也可以利用循环判断图片的当前索引值 var newLeft=parseInt(list.style.left)+offs ...
- html多图轮播淡入淡出js,原生JS实现图片轮播与淡入效果的简单实例
最近对css的兴趣提不起来,因为以前对图片轮播一直耿耿于怀苦于学艺不精,所以,花了点时间熟悉了一下js.然后一条道走到黑,用jquery和js写了一下轮播和图片淡入的效果.以后学习的路很长,希望自己在 ...
- 原生JS实现韩雪冬轮播图
分享一个用原生JS实现的韩雪冬轮播图,效果如下: 实现代码如下: <!DOCTYPE html> <html><head lang="en">& ...
- 2021年原生JS实现韩雪冬轮播图
<!DOCTYPE html> <html><head lang="en"><meta charset="UTF-8" ...
- 原生JS制作自动+手动轮播图,附带二级分类菜单
原生JS制作自动+手动轮播图,附带二级分类菜单 包含以下功能: 1.鼠标移开自动轮播 2.鼠标移入停止自动轮播 3.点击左右按钮可手动切换图片 4.点击索引小圆点可手动切换图片 5.鼠标移入一级菜单展 ...
- 原生js模拟实现京东轮播图
原生js模拟实现京东轮播图 一.实现原理 1. 官网发现 2. opacity和z-index 3.定位 二.文档目录 三.HTML结构 四.css样式 五.js行为_实现自动轮播与点击效果 六.效果 ...
- 原生JS实现图片跑马灯特效
今天给大家分享一个用原生JS实现的图片跑马灯特效,效果如下: 实现的代码如下,欢迎大家复制粘贴. <!DOCTYPE html> <html><head><m ...
- 如何上传图片到fileupload空间_如何用原生js写图片上传组件v2.0(还有新版本)?...
js图片上传组件: 基本要求: 1.上传的图片可预览,可删除,可被覆盖更新 2.要求图片格式为jpg和png,大小不能超过2M 新加需求: 1.模拟回显,可用本地存储(实际上的回显是通过后台传过来的u ...
最新文章
- python列表--查找集合中重复元素的个数
- Linux ubuntu终端sh、bash、shell的联系与区别
- 买房子,就该用线性回归
- 教你如何使用Redis:[7]redis常用命令
- python脚本监控mysql数据库_Python脚本监控mysql数据库,Python脚本监控mongo数据库
- Apache Flink CEP 实战
- 使用Sysmon分析宏病毒(Macros Downloader)
- ios下点击label包含的input checkbox或radio无效问题
- 神经网络matlab仿真,神经网络模型及其MATLAB仿真程序设计 周开利 等著 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...
- Html5用户注册页面
- Apache Tomcat安装配置
- 利用MeGUI实现批量转换视频
- 午睡起来发现了很精美的windows壁纸
- 测试用例设计——微信发朋友圈(详细)
- C++课程学习代码汇总基础
- 【龙印】用龙芯1c实现3D打印机的总体思路
- 【UE5 水体系统】
- lammps案例:聚乙烯/石墨烯侧面pull out模拟案例
- C4D打开obj文件简单操作记录
- 从零开始研发GPS接收机连载——11、电文解析