基于jquery的移动端JS无缝切换
Html:
<div id="slide-box-1">
<ul>
<li>
<a href="javascript:void(0);">
<div class="slide-img">
<img src="data:images/ambassador/a-1.jpg">
</div>
<div class="slide_text">
<h3>国家领导人1</h3>
<div>
<p>银泰百货杭州湖滨店是一条紧邻西湖的综合性商业街区,这里是Dolce & Gabbana 中国大陆第一家旗舰店、Giorgio Armani 中国单体面积最大旗舰店的所在地,也是Hermes 和Versace 杭州首家旗舰店的诞生地。Prada、MaxMara、YSL、Ferragamo 等一线顶级奢侈品牌的强势登陆,LV 更在此开设7层大的亚洲旗舰店。</p>
</div>
</div>
</a>
<img src="data:images/public/slide-bg.jpg" class="slide-bgimg">
</li>
<li>
<a href="javascript:void(0);">
<div class="slide-img">
<img src="data:images/ambassador/a-1.jpg">
</div>
<div class="slide_text">
<h3>国家领导人2</h3>
<div>
<p>银泰百货杭州湖滨店是一条紧邻西湖的综合性商业街区,这里是Dolce & Gabbana 中国大陆第一家旗舰店、Giorgio Armani 中国单体面积最大旗舰店的所在地,也是Hermes 和Versace 杭州首家旗舰店的诞生地。Prada、MaxMara、YSL、Ferragamo 等一线顶级奢侈品牌的强势登陆,LV 更在此开设7层大的亚洲旗舰店。</p>
</div>
</div>
</a>
<img src="data:images/public/slide-bg.jpg" class="slide-bgimg">
</li>
<li>
<a href="javascript:void(0);">
<div class="slide-img">
<img src="data:images/ambassador/a-1.jpg">
</div>
<div class="slide_text">
<h3>国家领导人3</h3>
<div>
<p>银泰百货杭州湖滨店是一条紧邻西湖的综合性商业街区,这里是Dolce & Gabbana 中国大陆第一家旗舰店、Giorgio Armani 中国单体面积最大旗舰店的所在地,也是Hermes 和Versace 杭州首家旗舰店的诞生地。Prada、MaxMara、YSL、Ferragamo 等一线顶级奢侈品牌的强势登陆,LV 更在此开设7层大的亚洲旗舰店。</p>
</div>
</div>
</a>
<img src="data:images/public/slide-bg.jpg" class="slide-bgimg">
</li>
<li>
<a href="javascript:void(0);">
<div class="slide-img">
<img src="data:images/ambassador/a-1.jpg">
</div>
<div class="slide_text">
<h3>国家领导人4</h3>
<div>
<p>银泰百货杭州湖滨店是一条紧邻西湖的综合性商业街区,这里是Dolce & Gabbana 中国大陆第一家旗舰店、Giorgio Armani 中国单体面积最大旗舰店的所在地,也是Hermes 和Versace 杭州首家旗舰店的诞生地。Prada、MaxMara、YSL、Ferragamo 等一线顶级奢侈品牌的强势登陆,LV 更在此开设7层大的亚洲旗舰店。</p>
</div>
</div>
</a>
<img src="data:images/public/slide-bg.jpg" class="slide-bgimg">
</li>
<li>
<a href="javascript:void(0);">
<div class="slide-img">
<img src="data:images/ambassador/a-1.jpg">
</div>
<div class="slide_text">
<h3>国家领导人5</h3>
<div>
<p>银泰百货杭州湖滨店是一条紧邻西湖的综合性商业街区,这里是Dolce & Gabbana 中国大陆第一家旗舰店、Giorgio Armani 中国单体面积最大旗舰店的所在地,也是Hermes 和Versace 杭州首家旗舰店的诞生地。Prada、MaxMara、YSL、Ferragamo 等一线顶级奢侈品牌的强势登陆,LV 更在此开设7层大的亚洲旗舰店。</p>
</div>
</div>
</a>
<img src="data:images/public/slide-bg.jpg" class="slide-bgimg">
</li>
</ul>
</div>
<ul id="slide-box-2">
<li><img src="data:images/ambassador/a-4-1.jpg"></li>
<li><img src="data:images/ambassador/a-1-1.jpg"></li>
<li><img src="data:images/ambassador/a-2-1.jpg"></li>
<li><img src="data:images/ambassador/a-3-1.jpg"></li>
<li><img src="data:images/ambassador/a-3-1.jpg"></li>
</ul>
Css:
#slide-box-1 {
width: 100%;
height: 20rem;
}
#slide-box-1 > ul {
width: 10000%;
height: 100%;
position: relative;
left: -14.6rem;
}
#slide-box-1 > ul li {
width: 15.5rem;
height: 20rem;
background: #fff;
-webkit-border-radius: 0.25rem;
-moz-border-radius: 0.25rem;
border-radius: 0.25rem;
position: relative;
overflow: hidden;
margin-right: 0.75rem;
float: left;
}
#slide-box-1 > ul li a {
position: absolute;
z-index:;
}
#slide-box-1 > ul li a .slide-img {
width: 100%;
height: 7.75rem;
margin-bottom: 1.25rem;
overflow: hidden;
}
#slide-box-1 > ul li a .slide-img img {
width: 100%;
height: auto;
display: block;
}
#slide-box-1 > ul li a .slide_text {
padding: 0 0.6rem;
}
#slide-box-1 > ul li a .slide_text > h3 {
font-size: 0.7rem;
color: #333;
font-weight:;
margin-bottom: 0.3rem;
}
#slide-box-1 > ul li a .slide_text > div {
font-size: 0.6rem;
color: #666;
line-height: 1rem;
}
#slide-box-1 > ul li a .slide_text > div p {
font-size: 0.6rem;
color: #666;
line-height: 1rem;
}
#slide-box-1 > ul li .slide-bgimg {
width: 100%;
height: auto;
position: absolute;
bottom:;
}
#slide-box-2 {
width: 10000%;
height: 3.7rem;
position: absolute;
bottom:;
margin-left: -4.7rem;
overflow: hidden;
}
#slide-box-2 li {
width: 4.7rem;
height: 3.7rem;
float: left;
margin-top: 1.2rem;
-webkit-transition: margin-left 0.3s, margin-top 0.3s;
-moz-transition: margin-left 0.3s, margin-top 0.3s;
-ms-transition: margin-left 0.3s, margin-top 0.3s;
-o-transition: margin-left 0.3s, margin-top 0.3s;
transition: margin-left 0.3s, margin-top 0.3s;
position: relative;
overflow: hidden;
}
#slide-box-2 li img {
width: 5.55rem;
height: 3.7rem;
display: block;
}
#slide-box-2 li:first-child {
margin-left: 4.7rem;
}
#slide-box-2 .slide-active {
margin-top:;
width: 5.55rem;
z-index:;
}
Js:
//滑动轮播
function Touch_slide() {
var startX = 0;
var startY = 0;
var endX = 0;
var endY = 0;
var moveX = 0;//滑动距离
var li = null;//轮播元素
var list_index = 0;//轮播个数
var list_width = 0;//轮播图片宽度
var list_margin = 0;//轮播元素外边距
var list_distance = 0;//轮播距离
var ul_left = 0;//当前偏移量
var ul_left_copy = 0;//初始偏移量
var first_li = null;//第一个轮播元素
var last_li = null;//最后一个轮播元素
var first_li_down = null;//下方目录li第一个轮播元素
var last_li_down = null;//下方目录li最后一个轮播元素
var this_index = 0;//当前显示元素的index
//初始化
this.init = function (box, box_2) {
var container = box;//调用对象的容器
var con = box_2;//下方目录ul
var ul = container.children('ul');//轮播列表
li = ul.children('li');
list_index = li.length;//元素个数
list_width = li.width();//元素宽度
list_margin = parseFloat(li.css('margin-right'));//元素右边距
list_distance = list_width + list_margin;//一次轮播滚动的距离
var screen_width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;//获取网页可见区域的宽度
ul_left_copy = (584 / 750) * screen_width;//由于火狐计算rem有问题,反向计算rem(ul元素的初始偏移量)
//复制第一个和最后一个
var first_li_copy = ul.children().eq(0).clone();
var last_li_copy = ul.children().eq(list_index - 1).clone();
ul.append(first_li_copy);
ul.prepend(last_li_copy);
//手指触摸到屏幕
start(container, ul);
//开始滑动
//move(box);
//滑动结束
touch_end(container, ul, con);
};
var start = function (box) {
box.on('touchstart', function (event) {
var event = event || window.event;
event.preventDefault();
startX = event.originalEvent.changedTouches[0].pageX;
startY = event.originalEvent.changedTouches[0].pageY;
});
};
var move = function (box) {
box.on('touchmove', function (event) {
var event = event || window.event;
event.preventDefault();
startX = event.originalEvent.changedTouches[0].pageX;
startY = event.originalEvent.changedTouches[0].pageY;
});
};
var touch_end = function (box, ul, uldown) {
box.on('touchend', function (event) {
var event = event || window.event;
event.preventDefault();
endX = event.originalEvent.changedTouches[0].pageX;
endY = event.originalEvent.changedTouches[0].pageY;
touch_if(ul, uldown);
});
};
//判断左滑还是右滑
var touch_if = function (ul, uldown) {
moveX = startX - endX;//滑动距离
ul_left = -parseFloat(ul.css('left'));//当前偏移量
var max_left = (list_distance * (list_index - 1) + ul_left_copy);//最大偏移量
var min_left = (ul_left_copy);//最小偏移量
if (moveX > 30) {//左滑
if (ul_left > max_left || ul_left == max_left) {
ul.animate({'left': -(ul_left + list_distance)}, function () {
ul.css({'left': -ul_left_copy});
});
} else {
ul.animate({'left': -(ul_left + list_distance)});
}
//当前显示的li的index
this_index++;
if (this_index > (list_index - 1)) {
this_index = 0;
}
uldown.children('li').eq(this_index).addClass('slide-active').siblings('li').removeClass('slide-active');
} else if (moveX < -30) {//右滑
if ((ul_left - 1) < min_left || ul_left == min_left) {
ul.animate({'left': -(ul_left - list_distance)}, function () {
ul.css('left', -max_left);
});
} else {
ul.animate({'left': -(ul_left - list_distance)});
}
//当前显示的li的index
this_index--;
if (this_index < 0) {
this_index = list_index-1;
}
uldown.children('li').eq(this_index).addClass('slide-active').siblings('li').removeClass('slide-active');
}
}
} var touch_slide = new Touch_slide();
var slide_box = $('#slide-box-1');
var li1 = slide_box.find('li');
var slide_box_2 = $('#slide-box-2');
var li2 = slide_box_2.children('li');
//初始化时给下方列表第二个元素添加class
slide_box_2.children('li').eq(0).addClass('slide-active');
//初始化时给上下两个ul添加value
li1.each(function (index, li) {
$(this).attr('val', index);
});
li2.each(function (index, li) {
$(this).attr('val', index);
});
//初始化
touch_slide.init(slide_box, slide_box_2);
基于jquery的移动端JS无缝切换的更多相关文章
- 基于jQuery带标题的图片3D切换焦点图
今天给大家分享一款基于jQuery带标题的图片3D切换焦点图.这款焦点图适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 实现的代码. htm ...
- 基于jQuery商城网站全屏图片切换代码
基于jQuery商城网站全屏图片切换代码.这是一款商城网站全屏多张图片滑动切换代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class="slid ...
- 基于jquery鼠标点击图片翻开切换效果
基于jquery鼠标点击图片翻开切换效果是一款基于jQuery+CSS3实现的点击图片切换特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=&quo ...
- 基于jQuery果冻式按钮焦点图切换代码
基于jQuery果冻式按钮焦点图切换代码.这是一款基于jQuery+CSS3实现的图片切换代码.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=&quo ...
- 基于jquery仿360网站图片选项卡切换代码
今天给大家分享一款基于jquery仿360网站图片选项卡切换代码.这款实例适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预 ...
- 基于jQuery编写的横向自适应幻灯片切换特效
基于jQuery编写的横向自适应幻灯片切换特效 全屏自适应jquery焦点图切换特效,在IE6这个蛋疼的浏览器兼容性问题上得到了和谐,兼容IE6. 适用浏览器:IE6.IE7.IE8.360.Fire ...
- 基于jquery的插件turn.js学习笔记
基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...
- 基于jquery仿天猫分类导航banner切换
分享一款基于jquery天猫分类导航banner切换.这是一款仿最新天猫商品分类导航控制banner图片切换代码.效果图如下: 在线预览 源码下载 部分代码: <div class=&quo ...
- 基于jQuery的宽屏可左右切换的焦点图插件
之前分享了很多实用的jQuery焦点图插件,大家可以看看.今天要继续为大家分享一款很不错的jQuery焦点图插件,它是宽屏展示的,而且有两个大气的按钮用来左右切换图片.效果图如下: 在线预览 源码 ...
随机推荐
- EL/JSTL-jsp页面更简单的输出方式
1.EL(Expression Language):表达式语言,用于页面输出 格式:${表达式} EL支持四则运算,关系运算[常用eq来比较字符串或判断相等],逻辑运算 EL访问空间内对象,[类.对象 ...
- 全国Uber优步司机奖励政策 (1月18日-1月24日)
本周已经公开奖励整的城市有:北 京.成 都.重 庆.上 海.深 圳.长 沙.佛 山.广 州.苏 州.杭 州.南 京.宁 波.青 岛.天 津.西 安.武 汉.厦 门,可按CTRL+F,搜城市名快速查找. ...
- 海思NB-IOT的SDK看门狗的使用
1. 看门狗需要喂狗,如果自己写的任务一直运行,那么空闲任务无法运行会导致看门狗复位,来看下看门狗的机制,首先系统启动的时候创建了空闲任务 在这个函数里面void vTaskStartSchedule ...
- Qt-QML-Popup,弹层界面编写
随着接触Qt的时间的增加,也逐渐的发现了Qt 的一些不人信话的一些地方,不由的想起一句话,也不知道是在哪里看到的了“一切变成语言都是垃圾,就C++还可以凑合用”大致意思是这样.最近项目的祝界面框架都基 ...
- 负数取余/整除,Python和C语言的不同
总结一句:Python中负数整除,是向负无穷取整,所以导致负数取余不对 在数学公式中,两种语言的表示算法都是一样的,都是: r=a-n*[a/n] 以上,r是余数,a是被除数,n是除数. 唯一不同点, ...
- CentOS 7.2 安装zabbix 3.4
一.zabbix版本选择及部署环境说明 1.zabbix版本选择 zabbix官网地址:www.zabbix.com zabbix每半年发布一个长期支持版,目前长期支持版有2.0.3.0等,所以选择z ...
- Unity编辑器 - 资源批处理工具基类
Unity编辑器 - 资源批处理工具基类 经常要对资源进行批处理,很多时候都是一次性的需求,于是弄个通用脚本. 工具是个弹出面板,处理过程有进度条,如下: 如图,子类只需要重写几个方法: using ...
- Unity初探之黑暗之光(1)
Unity初探之黑暗之光(1) 1.镜头拉近 public float speed=10f;//镜头的移动速度 ;//镜头的结束位置 // Update is called once per fram ...
- javascript常用对象方法
concat:连接产生一个新数组 [1,2].concat([3,4]) >> [1, 2, 3, 4] filter:返回符合条件的一个新数组 [1,2,3,4,5].filte ...
- ORACLE高级部分内容
1.pl/sql基本语句 DECLARE BEGIN END; / 循环语句 DECLARE I NUMBER(2):=1; BEGIN WHILE I<100 LOOP I:=I+1; EN ...