jQuery-jquery scrollTop怎么解决所有浏览器兼容问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery-jquery scrollTop怎么解决所有浏览器兼容问题相关的知识,希望对你有一定的参考价值。

  只在quirk模式下, body.scrollTop是被所有都支持的
  所以这个表大家也不用 也没有必要去记, 只要记住一条
  if(window.pageYOffset)//这一条滤去了大部分, 只留了IE678
  else if(document.documentElement.scrollTop )//IE678 的非quirk模式
  else if(document.body.scrolltop)//IE678 的quirk模式
  
  原则是看pageYOffset 然后看documentElement.scrollTop, 最后是document.body.scrollTop
  当然 也可以直接scrollTop 而不使用pageYOffset
  以下是MDN 提供的兼容性代码
  scrolltop = (((t = document.documentElement) || (t = document.body.parentNode)) && typeof t.scrollTop == ‘number’ ? t : document.body).scrollTop
  转载,仅供参考。
参考技术A 只在quirk模式下, body.scrollTop是被所有都支持的
所以这个表大家也不用 也没有必要去记, 只要记住一条
if(window.pageYOffset)//这一条滤去了大部分, 只留了IE678
else if(document.documentElement.scrollTop )//IE678 的非quirk模式
else if(document.body.scrolltop)//IE678 的quirk模式

原则是看pageYOffset 然后看documentElement.scrollTop, 最后是document.body.scrollTop
当然 也可以直接scrollTop 而不使用pageYOffset
以下是MDN 提供的兼容性代码。

jQuery-jQuery引入和jQuery选择器

jQuery引入和jQuery选择器

jQuery引入

先下载jQuery文件,再通过script导入

<!DOCTYPE html>
<html>
<head>
    <meta charset=‘utf-8‘/>
    <title>jQuery</title>
</head>
<body>
    <div class="body">
        <ul>
            <li id="login">登录</li>
            <li id="register">注册</li>
        </ul>
    </div>
    <!--引入jQuery-->
    <script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
    <script>
        // 利用jQuery提供的功能获取标签文本
        var value = $(‘#login‘).text();
        console.log(value);
    </script>
</body>
</html>

jQuery对象和DOM对象

DOM对象和jQuery对象都为标签提供了各种各种功能,并且两者之间可以进行相互转换。

Dom对象转换jQuery对象:$(dom对象)

jQuery对象转换成Dom对象:jQuery对象[0]

<!DOCTYPE html>
<html>
<head>
    <meta charset=‘utf-8‘/>
    <title>jQuery</title>
</head>
<body>
    <div id="content">人生如烟,烟如雾。</div>
    <!--引入jQuery-->
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    <script>
        // DOM操作
        // 获取文本
        var txt = document.getElementById(‘content‘).innerText;
        document.getElementById(‘content‘).innerText = ‘沙雕‘;
        // jQuery操作
        var text = $(‘#content‘).text();
        $(‘#content‘).text(‘二货‘);
        
        // Dom对象转换jQuery对象:$(dom对象)
        $(document.getElementById(‘content‘))
        // jQuery对象转换成Dom对象:jQuery对象[0]
        $(‘#content‘)[0]
    </script>
</body>
</html>

选择器

id选择器

HTML代码:

<div id="notMe">    
    <p>id="notMe"</p>
</div>
<div id="myDiv">白日依山尽</div>

jQuery代码:

$("#myDiv");

结果:

[<div id="myDiv">id="myDiv"</div> ]

class选择器

HTML代码:

<div class="notMe">窗前明月光</div>
<div class="myClass">疑是地上霜</div>
<span class="myClass">举头望明月</span>

jQuery代码:

$(".myClass");

结果:

[ <div class="myClass">窗前明月光</div>, <span class="myClass">举头望明月</span> ]

标签选择器

HTML代码:

<div>DIV1</div>
<div>DIV2</div>
<span>SPAN</span>

jQuery代码:

$("div");

结果:

[ <div>DIV1</div>, <div>DIV2</div> ]

多选择器

HTML代码:

<div>鸡</div>
<p class="myClass">我顶你个肺</p>
<span>你太美</span>
<p class="notMyClass">哈哈哈哈哈哈</p>

jQuery代码:

$("div,span,p.myClass")

结果:

[ <div>鸡</div>, <p class="myClass">我顶你个肺</p>, <span>你太美</span> ]

层级选择器

HTML代码:

<form>  
    <label>Name:</label>  
    <input name="name" />  
    <div>      
        <label>Newsletter:</label>      
        <input name="newsletter" /> 
    </div>
</form>
<input name="none" />

jQuery代码:

$("form input")

结果:

[ <input name="name" />, <input name="newsletter" /> ]

属性选择器

HTML代码:

<input type="checkbox" name="newsletter" value="Hot Fuzz" />

<input type="checkbox" name="newsletter" value="Cold Fusion" />
<input type="checkbox" name="accept" value="Evil Plans" />

jQuery代码:

$("input[name=‘newsletter‘]")

结果:

[ <input type="checkbox" name="newsletter" value="Hot Fuzz" />, <input type="checkbox" name="newsletter" value="Cold Fusion" /> ]

表单选择器

HTML代码:

<form>    
    <input type="button" value="Input Button"/>    
    <input type="checkbox" />    
    
    <input type="file" />    
    <input type="hidden" />    
    <input type="image" />    
    
    <input type="password" />    
    <input type="radio" />    
    <input type="reset" />   
    
    <input type="submit" />    
    <input type="text" />    
    <select>        
        <option>Option</option>    
    </select>    
    <textarea> </textarea>   
    <button>Button</button>
</form>

jQuery代码:

$(":text")          // 找到所有input标签且type=text的标签

//$(":input")      //找到所有input标签

//$(":password")   //找到所有input且type=password的标签

//$(":radio")      //找到所有input且type=radio的标签

//$(":checkbox")   //找到所有input且type=checkbox的标签

结果:

[ <input type="text" /> ]

以上是关于jQuery-jquery scrollTop怎么解决所有浏览器兼容问题的主要内容,如果未能解决你的问题,请参考以下文章

jQuery-jQuery属性

jQuery-jQuery文档处理

jQuery-jQuery文档处理

jQuery-jQuery引入和jQuery选择器

jQuery-jQuery引入和jQuery选择器

Asp.net入门3-02使用jQuery-jQuery 入门