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端移动端兼容的大图轮播的更多相关文章

  1. CSS3常用属性(边框、背景、文本效果、2D转换、3D转换、过渡、有过渡效果大图轮播、动画)

    CSS3边框: 1.CSS3圆角:border-radius  属性--创建边框线的圆角 <body style="font-size:24px; color:#60F;"& ...

  2. [DBW]大图轮播,可通过两种方法实现

    通过在div中加入表格,实现大图轮播,代码如下: 整体的思路: 1.在div中嵌入表格,设置div的宽和高,设置成图片大小,确定其位置,将图片插入表格,超出div部分隐藏 2.在js中定义一个变量接受 ...

  3. 利用JS做网页特效——大图轮播

    大图轮播完整流程代码操作: <style>            * {                margin: 0px;                padding: 0px;  ...

  4. bootstrap大图轮播手机端不能手指滑动解决办法

    网上看了很多解决办法,几乎本质都是一样的,都是引入一个滑动的js插件,加入一段js代码,即可生效,但是我试了hammer.js 和 touchSwipe.js 都不生效,也找不到原因是什么,目前在网上 ...

  5. 关于移动端使用swiper做图片文字轮播的思考

    最近做移动端网页的时候,需要在首页添加一个公告的模块,用来轮播公告消息标题并且能链接到相应的详情页面,最开始用的是swiper插件,在安卓上测试完全没有问题,但是在苹果机上就没有那么灵敏了,来回切换首 ...

  6. JQUERY写大图轮播;附jquery的hover()方法、animate()方法、find()方法

    思想:黑框设置超出部分隐藏. 红框往左移动,通过判断红框左边框距离黑框左边框的像素值,来实现红框的移动. 绿框在最上层,放每张图片的说明和序号. 一:html部分(大框.图片部分.箭头部分.图片介绍部 ...

  7. 纯原生JS大图轮播

    CSS部分: CSS: <style type="text/css"> #banner { position: relative; width: 500px; heig ...

  8. jQuery实现大图轮播

    css样式: *{    margin: 0;    padding: 0;}ul{    list-style:none;}.slideShow{    width: 620px;    heigh ...

  9. 拖拽大图轮播pc 移动兼容

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. 洛谷 P2296 寻找道路【bfs+spfa】

    反向建边bfs出不能到t的点,然后对每个能到这些点的点打上del标记,然后spfa的时候不经过这些点即可 #include<iostream> #include<cstdio> ...

  2. Photoshop下载

    Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件.Photoshop主要处理以像素所构成的数字图像.使用其众多的编修与绘图工具,可以有效地进行图片编 ...

  3. npm install 各种后缀 --xx说明

    npm install xx -g 首先是在npm install xx 命令后面加 -g 它表示将当前包上下文(即,当前工作目录)安装为全局包. npm install (没有参数),在本地node ...

  4. UIImageView 使图片圆形的方法

    UIImageView 圆形的两种方法 1.cornerRadius (tableView,collectionView尽量避免使用,影响性能) //想要圆角 cornerRadius必须是 imag ...

  5. 清橙A1339. JZPLCM(顾昱洲)

    http://www.tsinsen.com/ViewGProblem.page?gpid=A1339 题解:https://blog.csdn.net/LOI_DQS/article/details ...

  6. Kruskal HDOJ 1233 还是畅通工程

    题目传送门 /* 最小生成树之kruskal算法--并查集(数据结构)实现 建立一个结构体,记录两点和它们的距离,依照距离升序排序 不连通就累加距离,即为最小生成树的长度 */ #include &l ...

  7. Hibernate通过实体对象对应数据库表信息

    Hibernate通过实体对象对应数据库表信息,包括:数据库表名称.主键列名.非主键列名等. 获取对象映射缓存管理类: AbstractEntityPersister aep = (AbstractE ...

  8. jmeter(二十)JMeter中返回Json数据的处理方法

    Json 作为一种数据交换格式在网络开发,特别是 Ajax 与 Restful 架构中应用的越来越广泛.而 Apache 的 JMeter 也是较受欢迎的压力测试工具之一,但是它本身没有提供对于 Js ...

  9. python中函数参数

    默认参数注意点 优点:灵活,当没有指定与形参对应的实参时就会使用默认参数 缺陷: 例子: >>> def h(m, l=[]):                    #默认参数时列 ...

  10. 动手实现 React-redux(三):connect 和 mapStateToProps

    我们来观察一下刚写下的这几个组件,可以轻易地发现它们有两个重大的问题: 有大量重复的逻辑:它们基本的逻辑都是,取出 context,取出里面的 store,然后用里面的状态设置自己的状态,这些代码逻辑 ...