pc端移动端兼容的大图轮播
body, html {
width: 100%;
}
* {
margin:;
padding:;
list-style: none;
}
.haha {
list-style-type: none;
}
.nav {
width: 100%;
height: 300px;
overflow: hidden;
position: relative;
}
.warp {
height: 300px;
position: absolute;
}
.warp .haha {
height: 300px;
float: left;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.warp img {
width: 100%;
height: auto;
}
.nouse {
width: 100%;
position: absolute;
bottom:;
left:;
}
.point {
width: 140px;
margin: 0 auto;
}
.point > div {
width: 20px;
height: 20px;
border-radius: 50%;
background-color: white;
margin-left: 30px;
float: left;
}
.point > div:first-child {
margin-left:;
}
.nav .point .on {
background-color: red;
width: 40px;
height: 20px;
border-radius: 10px;
}
<div class="nav">
<div class="warp">
<div class="haha"><img src=""></div>
<div class="haha"><img src=""></div>
<div class="haha"><img src=""></div>
</div>
<div class="nouse">
<div class="point">
<div class="on"></div>
<div></div>
<div></div>
</div>
</div>
<script type="text/javascript">
var p = 0;
var len = $('.haha').length;
var warp = $('.warp');
var timer = null;
var firstimg = $('.warp .haha').first().clone();
$('.warp').append(firstimg).width($('.warp .haha').length * 100 + '%');
$('.warp .haha').width(100 / $('.warp .haha').length + '%');
var isMoved;
//自动切换
function change() {
p++;
if (p == $('.warp .haha').length) {
p = 1;
$('.warp').css('left', '0px');
}
;
warp.stop().animate({left: -p * 100 + '%'}, 1000, function () {
console.log(p);
if (p == $('.warp .haha').length - 1) {
$('.point div').eq(p - $('.warp .haha').length + 1).addClass("on").siblings("div").removeClass("on");
} else {
$('.point div').eq(p).addClass("on").siblings("div").removeClass("on");
}
});
}
// timer = setInterval(change, 2300);
$(".point div").click(function () {
clearInterval(timer);
$(this).addClass("on").siblings("div").removeClass("on");
p = $(this).index();
warp.stop().animate({left: -p * 100 + '%'}, 1000,function () {
// timer = setInterval(change, 2300);
}) ;
})
var pageX,pageY;
$('.warp').on('touchstart',function (e) {
var touches = e.originalEvent.targetTouches[0];
pageX = touches.pageX;
pageY = touches.pageY;
}).on('touchmove',function (e) {
var touches = e.originalEvent.targetTouches[0];
if(touches.pageX>pageX-20 && Math.abs(touches.pageY-pageY)<Math.abs(touches.pageX-pageX)){
if (isMoved){
return '';
}
isMoved=true
clearInterval(timer);
$(this).addClass("on").siblings("div").removeClass("on");
p--;
if (p<0){
warp.css({left: -(len)*100+"%"});
p=len-1;
$(".point div").removeClass('on').eq(p).addClass('on')
} else {
$(".point div").removeClass('on').eq(p).addClass('on')
}
console.log(p)
warp.stop().animate({left: -p * 100 + '%'}, 1000,function () {
// timer = setInterval(change, 2300);
isMoved=false;
}) ;
}
else if(touches.pageX<pageX+20 && Math.abs(touches.pageY-pageY)<Math.abs(touches.pageX-pageX)){
if (isMoved){
return '';
}
isMoved=true
clearInterval(timer);
$(this).addClass("on").siblings("div").removeClass("on");
p++;
if (p>len){
warp.css({left: 0+"%"});
p=1;
$(".point div").removeClass('on').eq(p).addClass('on')
}else {
console.log(p>=len?0:p)
$(".point div").removeClass('on').eq(p>=len?0:p).addClass('on')
}
console.log(p)
warp.stop().animate({left: -p * 100 + '%'}, 1000,function () {
// timer = setInterval(change, 2300);
isMoved=false;
}) ;
}
})
var x,y;
$(document).mousedown(function(event){ //获取鼠标按下的位置
x = event.pageX;
y = event.pageY;
});
$(document).mouseup(function(event){//鼠标释放
var newX = event.pageX;
var newY = event.pageY;
if(x<newX-20 && Math.abs(y-newY)<Math.abs(x-newX)){
if (isMoved){
return '';
}
isMoved=true
clearInterval(timer);
$(this).addClass("on").siblings("div").removeClass("on");
p--;
if (p<0){
warp.css({left: -(len)*100+"%"});
p=len-1;
$(".point div").removeClass('on').eq(p).addClass('on')
} else {
$(".point div").removeClass('on').eq(p).addClass('on')
}
console.log(p)
warp.stop().animate({left: -p * 100 + '%'}, 1000,function () {
// timer = setInterval(change, 2300);
isMoved=false;
}) ;
}
else if(x>newX+20 && Math.abs(y-newY)<Math.abs(x-newX)){
if (isMoved){
return '';
}
isMoved=true
clearInterval(timer);
$(this).addClass("on").siblings("div").removeClass("on");
p++;
if (p>len){
warp.css({left: 0+"%"});
p=1;
$(".point div").removeClass('on').eq(p).addClass('on')
}else {
$(".point div").removeClass('on').eq(p>=len?0:p).addClass('on')
}
console.log(p)
warp.stop().animate({left: -p * 100 + '%'}, 1000,function () {
// timer = setInterval(change, 2300);
isMoved=false;
}) ;
}
})
$('img').on('mousedown',function (e) {
e.preventDefault()
})
最后别忘记引入jq奥
pc端移动端兼容的大图轮播的更多相关文章
- CSS3常用属性(边框、背景、文本效果、2D转换、3D转换、过渡、有过渡效果大图轮播、动画)
CSS3边框: 1.CSS3圆角:border-radius 属性--创建边框线的圆角 <body style="font-size:24px; color:#60F;"& ...
- [DBW]大图轮播,可通过两种方法实现
通过在div中加入表格,实现大图轮播,代码如下: 整体的思路: 1.在div中嵌入表格,设置div的宽和高,设置成图片大小,确定其位置,将图片插入表格,超出div部分隐藏 2.在js中定义一个变量接受 ...
- 利用JS做网页特效——大图轮播
大图轮播完整流程代码操作: <style> * { margin: 0px; padding: 0px; ...
- bootstrap大图轮播手机端不能手指滑动解决办法
网上看了很多解决办法,几乎本质都是一样的,都是引入一个滑动的js插件,加入一段js代码,即可生效,但是我试了hammer.js 和 touchSwipe.js 都不生效,也找不到原因是什么,目前在网上 ...
- 关于移动端使用swiper做图片文字轮播的思考
最近做移动端网页的时候,需要在首页添加一个公告的模块,用来轮播公告消息标题并且能链接到相应的详情页面,最开始用的是swiper插件,在安卓上测试完全没有问题,但是在苹果机上就没有那么灵敏了,来回切换首 ...
- JQUERY写大图轮播;附jquery的hover()方法、animate()方法、find()方法
思想:黑框设置超出部分隐藏. 红框往左移动,通过判断红框左边框距离黑框左边框的像素值,来实现红框的移动. 绿框在最上层,放每张图片的说明和序号. 一:html部分(大框.图片部分.箭头部分.图片介绍部 ...
- 纯原生JS大图轮播
CSS部分: CSS: <style type="text/css"> #banner { position: relative; width: 500px; heig ...
- jQuery实现大图轮播
css样式: *{ margin: 0; padding: 0;}ul{ list-style:none;}.slideShow{ width: 620px; heigh ...
- 拖拽大图轮播pc 移动兼容
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
随机推荐
- 介绍一下Extern “C”,它的作用是什么?
Extern “C”是由C++提供的一个连接交换指定符号,用于告诉C++这段代码是C函数.这是因为C++编译后库中函数名会变得很长,与C生成的不一致,造成C++不能直接调用C函数,加上extren “ ...
- WPF DataGrid foreground 绑定问题
初学WPF , 希望对DataGrid 中所属的一个Column名下的值的颜色动态修改 <DataGridTextColumn Header="隐含回购利率(%)" Bin ...
- 跟我一起玩Win32开发(1):关于C++的几个要点
我不知道各位,一提起C++,第一感觉是什么?而据俺的观察,许多人几乎成了“谈C色变”.不管是C还是C++,一直以来都被很多人视为相当难学的玩意儿,幸好只是一个C++,没有C--,C**和C//,不然, ...
- scikit-learning教程(四)选择合适的估计量
选择正确的估计 解决机器学习问题的最困难的部分通常是找到合适的工作量. 不同的估计器更适合于不同类型的数据和不同的问题. 下面的流程图旨在给用户一些关于如何处理关于哪些估计器尝试您的数据的问题的粗略指 ...
- 后缀数组 DC3构造法 —— 详解
学习了后缀数组,顺便把DC3算法也看了一下,传说中可以O(n)复杂度求出文本串的height,先比较一下倍增算法和DC3算法好辣. DC3 倍增法 时间复杂度 O(n)(但是常数很大) O(nlo ...
- loj124 除数函数求和 1
loj124 除数函数求和 1 https://loj.ac/problem/124 $\sum_{i=1}^n(\sum_{d|i}d^k)=\sum_{i=1}^n(i^k*{\lfloor}{\ ...
- printf格式化输出参数
1.类型 类型字符用以表示输出数据的类型,其格式符和意义如下表所示: 格式字符 意义 d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀0) x,X 以十六进 ...
- 正则表达式test报错 is not a function
var reg = "/^1[34578]\d{9}$/"; //错误格式,这是一个字符串 var reg2 = /^1[34578]\d{9}$/; //正确格式 reg .te ...
- MySQL执行带out的存储过程
CALL `sp_sys_get_code`(3,'sys_customer',@code); SELECT @code
- 可能是最漂亮的Spring事务管理详解 专题
微信阅读地址链接:可能是最漂亮的Spring事务管理详解 事务概念回顾 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事物的特性(ACID): 原子性: 事务是最小的执行单位,不允 ...