jquery,js如何获取一组LI面的宽度最长的那个li的值

jquery,js如何获取一组LI面的宽度最长的那个li的值,第1张

 var max_width=0;

 $('ul li')each(function(){

     if(max_width){

         if($(this)width()>max_widthwidth()){

             max_width = $(this)width();

         }

     }else{

        max_width = $(this)width();

     }

})

alert(max_widthwidth())

<head>

<meta charset="UTF-8">

<title>无缝滚动</title>

<style type="text/css">

body,ul,li{margin:0;padding:0}

ul{list-style:none;}

slide{

width:500px;

height:100px;

border:1px solid #ddd;

margin:20px auto 0;

position:relative;

overflow:hidden;

}

slide ul{

position:absolute;/相对于slide进行绝对定位/

width:1000px;/比slide宽度大一倍,做这种连续滚动效果的时候,要在后面把内容复制一份/

height:100px;

left:0;/可以改变该值让其动起来/

top:0;

}

slide ul li{

width:90px;

height:90px;

margin:5px;

background-color:#ccc;

line-height:90px;

text-align: center;

font-size:30px;

float:left;

}

btns{

width:500px;

height:50px;

margin:10px auto 0;

}

</style>

<script type="text/javascript" src="/js/jquery-1124minjs"></script>

<script type="text/javascript">

$(function(){

var $ul = $('#slide ul');

var left = 0;

var deraction = 2;//每次滚动的距离

//内容为两套li

$ulhtml($ulhtml() + $ulhtml());

//反复循环定时器,30ms动一下可以看起来比较平滑

var timer = setInterval(move, 30);

function move(){

left -= deraction;

//当第2套li完全显示出来的时候,整个移回原点重新移动,实现向左连续滚动

if(left < -500){

left = 0;

}

//瞬间跳回,实现向右连续滚动

if(left > 0){

left = -500;

}

$ulcss({left: left});

}

$('#btn1')click(function() {

deraction = 2;

});

$('#btn2')click(function() {

deraction = -2;

});

$('#slide')mouseover(function() {

clearInterval(timer);

});

$('#slide')mouseout(function() {

timer = setInterval(move,30);

});

})

</script>

</head>

<body>

<div class="btns">

<input type="button" name="" value="向左" id="btn1">

<input type="button" name="" value="向右" id="btn2">

</div>

<div class="slide" id="slide">

<ul>

<li>1</li>

<li>2</li>

<li>3</li>

<li>4</li>

<li>5</li>

</ul>

</div>

</body>

鼠标移入要做的事情mouseover

鼠标移出要做的事情mouseout

<head>

    <meta charset="UTF-8">

    <title>鼠标移入移出</title>

    <style type="text/css">

        box{

            width: 200px;

            height: 200px;

            background-color: gold;

            margin: 100px auto 0;

        }

        son{

                width: 100px;

                height: 100px;

                background-color: green;

        }

    </style>

    <script type="text/javascript" src="js/jquery-1124minjs"></script>

    <script type="text/javascript">

         $(function(){

        /进入子元素也触发/

        /$('#div1')mouseover(function() {

        $(this)animate({marginTop: 50});//stop()

        });

        $('#div1')mouseout(function() {

        $(this)animate({marginTop: 100});//stop()

    });/

        /进入子元素不触发/

        /$('#div1')mouseenter(function() {

        $(this)stop()animate({marginTop: 50});//

        });

        $('#div1')mouseleave(function() {

        $(this)stop()animate({marginTop: 100});//

        });/

        /通过hover(mouseenter+mouseleave)实现简写/

        $('#div1')hover(function() {

        $(this)stop()animate({marginTop: 50});

        }, function() {

        $(this)stop()animate({marginTop: 100});

            });

        })

    </script>

</head>

<body>

        <div id="div1" class="box">

                <div class="son"></div>

        </div>

</body>

创建一个子元素 促使鼠标移入到子元素才能移动

是由于时间mouse影响

则要使用mouseenter和mouseleave进行改变

也可以运用hover简化

autofocus

表单元素的值发生变化

<head>

                <meta charset="UTF-8">

                <title>input框事件</title>

                <style type="text/css">

                </style>

                <script type="text/javascript" src="js/jquery-1124minjs"></script>

                <script type="text/javascript">

                     $(function(){

                    // //一开始就获取焦点,相当于设置了autofocus自动获取焦点了(HTML5 新增表单控件属性)

                    // $('#txt01')focus();

                    // //文本框获取焦点的时候(有光标闪烁的时候)

                    // $('#txt01')focus(function() {

                    // alert('focus');

                    // });

                    // //失去焦点的时候(光标离开的时候)

                    // $('#txt01')blur(function() {

                    // alert('blur');

                    // });

                    // //输入框内容发生变化的时候,失去焦点后触发,可用于注册时验证用户名是否已存在

                    // $('#txt01')change(function() {

                    // alert('change');

                    // });

                    //松开键盘按键就触发

                    $('#txt01')keyup(function() {

                    alert('keyup');

                    });

                })

                </script>

</head>

<body>

        <input type="text" id="txt01">

</body>

<head>

            <meta charset="UTF-8">

            <title>jQuery其他事件</title>

            <style type="text/css">

            </style>

            <script type="text/javascript" src="js/jquery-1124minjs"></script>

            <script type="text/javascript">

            // // JS原生写法

            // windowonload = function(){

            // }

            // / /jQuery写法,等同于上面写法

            // $(window)load(function(){

            // })

            // //ready的写法

            // $(document)ready(function(){

            // })

            // //ready的简写

            // $(function(){

            // })

            // 窗口改变尺寸的时候,会高频触发

            $(window)resize(function() {

            consolelog('3');

            });

            </script>

</head>

<body>

            <div id="div1"></div>

</body>

鼠标移入要做的事情mouseover

鼠标移出要做的事情mouseout

<!DOCTYPE html>

<head>

<style type="text/css">

ul{

    list-style:none; / 去掉ul前面的符号 /

    margin: 0px; / 与外界元素的距离为0 /

    padding: 0px; / 与内部元素的距离为0 /

    width: auto; / 宽度根据元素内容调整 /

}

/ 所有class为menu的div中的ul中的li样式 /

ul li{float:left; / 向左漂移,将竖排变为横排 /}

#ulImages li{display:none};

</style>

<script>

function show(id){

var images = documentgetElementById("ulImages")getElementsByTagName("li");

for(var i=0;i<imageslength;i++){

images[i]styledisplay = "none";

}

images[id]styledisplay = "block";

}

</script>

</head>

<body>

<div id="t_c_ggao">

    <ul id="ulImages">

    <li style="display:block"><img src="images/list-1jpg" width="480" height="200"/>1</li>

    <li><img  src="images/list-1jpg" width="480" height="200" />2</li>

    <li><img src="images/lp570jpg" width="480" height="200"/>3</li>

    <li><img  src="images/qx570jpg" width="480" height="200" />4</li>

    <li><img  src="images/ys570jpg" width="480" height="200"/>5</li>

    <li><img  src="images/zx570jpg" width="480" height="200" />6</li>

    <li><img  src="images/list-1jpg" width="480" height="200" />7</li>

    </ul>

 <ul id="list_number">

   <li><a href="#" onclick="show(0)">1</a></li>

   <li><a href="#" onclick="show(1)">2</a></li>

   <li><a href="#" onclick="show(2)">3</a></li>

   <li><a href="#" onclick="show(3)">4</a></li>

   <li><a href="#" onclick="show(4)">5</a></li>

   <li><a href="#" onclick="show(5)">6</a></li>

   <li><a href="#" onclick="show(6)">7</a></li>

      </ul>

  </div>

  </body>

  嗯貌似我回答晚了,仅供参考吧,欢迎交流学习qQgroup21/77/712

最近在项目开发中,遇到一个令人头疼的问题。当一个容器能左右滑动时,手指在该容器上做上下滑动的手势页面不会上下滚动(在容器外围上下滑动是可以的,所以排除页面的scroll问题),并且这个问题只会在ios上出现,安卓没有。

通过查资料发现,原生的IOS scroll有这个问题,所以就使用了本文所讲的better-srcoll来解决。下面来讲讲如何使用better-scroll来实现左右和上下滚动。

2引入better-scroll

使用BScroll实例化之前必需要等待DOM渲染完成。

产生左右滚动的条件是子盒子内的宽度必须要大于父盒子的宽度,所以我们在用better-scroll时,必须要先得到滚动区域的尺寸和父盒子的尺寸,来计算出是否能滚动。

下面是一个小demo

(1)class为content的div的父盒子,在此区域内滚动,需要通过ref拿到DOM。

(2)ul元素是子盒子,包含若干个li元素,可以通过li元素的宽度动态进行计算,也可以通过ref获取dom

给li标签90px的宽度,确保子盒的宽度大于父盒子的宽度

3使用better-scroll

(1) 首先拿到所有的li元素的宽度,赋值给ul元素

(2) 生成BScroll实例,其中this$refscontent就是父盒子的DOM,在此区域内滚动。

需要给父元素一个固定的高度,并且overflow属性为hidden

4效果图

使用better-scroll后可能会出现点击事件发生两次的情况,这时只需要在配置参数

click改为false就可以了。

想要了解更多参数及其使用方法请前往: better-scroll文档地址

web前端解压zip文件有什么用:

只考虑标准浏览器的话, 服务器只要传输压缩包到客户端, 节约了带宽, 而且节约了传输时间, 听起来好像很厉害的说;

如果前端的代码很多, 而且包含大副的,那么就可以把js和css和jpg和png等各种数据通过服务端打包成zip传送到浏览器, 浏览器负责解压, css实用动态生成插入到dom中,js也用globalEval直接执行, jpg或者png各种文件由blob流转化为image, 直接插入到浏览器中;

html5支持读取Blob(二进制大对象, file文件也是继承了Blob), 并转化为流或者文字流或者其他流格式, 这也是为什么浏览器可以读取"application/zip"文件的原因;

要在浏览器中解压zip文件的话需要引入四个js , 因为UnZipArchivejs依赖了zipjs, mime-typejs和jqueryjs , 测试demo如下:

<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <script src=">

jquery的 length 属性用以获取包含 jQuery 对象中元素的数目:

$("a b li")length;    // a类后代b类中包含的li元素的数量

综合示例如下:

创建Html元素

<div class="box">

<span>点击按钮获取li数量:</span><br>

<div class="content">

<div class="test">

<ul>

  <li>John</li>

  <li>Karl</li>

  <li>Brandon</li>

</ul>

</div>

<div class="test">

<ul>

  <li>Glen</li>

  <li>Tane</li>

  <li>Ralph</li>

  <li>Ralph</li>

</ul>

</div>

<div class="test">

<ul>

  <li>John</li>

  <li>Karl</li>

  <li>Brandon</li>

</ul>

</div>

</div>

<input type="button" value="获取li的数量">

</div>

设置css样式

divbox{width:300px;padding:20px;margin:20px;border:4px dashed #ccc;}

divbox span{color:#999;font-style:italic;}

divcontent{width:250px;margin:10px 0;padding:20px;border:2px solid #ff6666;}

input[type='button']{height:30px;margin:10px;padding:5px 10px;}

ul{padding:5px 25px;border:2px dashed #cc6699;}

编写jquery代码

$(function(){

$(":button")click(function() {

tol = $("content test li")length;

num = $("content test ul")map(function() {

return $(this)find("li")length;

})get()join(',');

alert("不同div下的li数量分别为:"+num+",总数为:"+tol+"。");

});

})

观察效果

var max_width=0; $('ul li')each(function(){ if(max_width){ if($(this)width()>max_widthwidth()){ max_width = $(this)width(); } }else{ max_width = $(this)width(); }})alert(max_widthwidth())

以上就是关于jquery,js如何获取一组LI面的宽度最长的那个li的值全部的内容,包括:jquery,js如何获取一组LI面的宽度最长的那个li的值、鼠标移出移入、 focus获取焦点和blur失去焦点的运用、js怎样获取点击的是第几个li等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9556850.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存