Learn to use jquery iScroll.js mobile scroll bar plug-in_jquery
What is the most commonly used plug-in in your daily work, jQurey? Lazyload? But these are all on the PC side, but the most commonly used plug-in on the mobile side is iScroll. What exactly is iScroll and how should it be used? iScroll is a very powerful plug-in, and I only have a superficial understanding of it. Here we will briefly introduce it.
Generation of iScroll:
iScroll was created entirely because of mobile webkit browsers, such as on iPhone and Android mobile devices.
How to use iScroll:
The principle of iScroll is that there is an overflow hidden (overflow:hidden;) DOM in the outer layer, and then the first DOM structure in this area will be instantiated, and the wrapped content can be scrolled vertically or horizontally, so in When using iScroll, the scrolling elements should be as simple as possible, reduce the number of DOMs, and reduce nesting, because the more complex the DOM structure is, the more difficult it will be for iScroll to run, which may cause some nodes to display abnormally. Therefore, the recommended DOM structure is as follows:
<div id="wrapper">//overflow:hidden; <ul> //只有第一个DOM结构(ul)被实例化,这个DOM可以纵向或者横向的滚动, //多出的内容会被wrapper的样式hidden。 <li>1</li> <li>2</li> <li>3</li> </ul> </div>
Note: Again, only the first child element (ul) in the wrapper can be instantiated for scrolling, and scrolling must be achieved in conjunction with the outer DOM (wrapper).
What if there are multiple uls in the wrapper? It's very simple. Remember that sentence, only the first child element (ul) in the wrapper can be instantiated and scrolled:
<div id="wrapper">//overflow:hidden; <div id="first"> //只有第一个DOM结构(ul)被实例化,这个DOM可以纵向或者横向的滚动, //多出的内容会被wrapper的样式hidden <ul> <li>1</li> <li>2</li> <li>3</li> </ul> <ul> <li>4</li> <li>5</li> <li>6</li> </ul> </div> </div>
As you can see, only first will be instantiated. Note: The ID of the first DOM structure (first) does not need to be written here. I only wrote an ID to facilitate everyone's identification, but the outermost ID (wrapper) must be written because it is needed when JS is instantiated. Fill in this ID:
var myScroll = new iScroll("wrapper");
How iScroll should be instantiated:
Since we talked about instantiation, when should we instantiate it? It is said that there are many methods of instantiation, but I have never used it. I will only mention one:
(1) Load iscroll.js and uw3c.js of the current page at the bottom of the HTML (uw3c.html) page (after body and before html) to ensure that the DOM structure of HTML can be loaded.
(2) Instantiate iScroll before JS inserts the page DOM structure and data, that is, instantiate it at the very beginning of JS, because JS may be used to insert DOM or data later. This ensures that iScroll has been instantiated before inserting data. .
HTML://HTML structure
<html > <body> ...code... </body> //插入iscroll.js文件 <script type="text/javascript" src="js/iscroll.js" > </script > //插入本页面JS文件 <script type="text/javascript" src="js/uw3c.js" > </script > </html>
JS://JS file content
var myscroll; function iscroll(data){ //实例化iScroll myscroll=new iScroll("wrapper"); pageData(data); } function pageData(obj){ $("body").html(obj); myscroll.refresh();//当DOM结构发生变化的时候,需要刷新iScroll } iscroll("<div>pagedata</div>");
Parameters in iScroll:
When instantiating iScroll, you can pass in two parameters. The first parameter is the ID of the instantiated outer DOM, and the second parameter is the object of the iScroll execution method:
var myscroll=new iScroll("wrapper",{hScrollbar:false}); 或者 var opts = { vScroll:false,//禁止垂直滚动 snap:true,//执行传送带效果 hScrollbar:false//隐藏水平方向上的滚动条 }; var myscroll = new iScroll("wrapper",opts);
The content of the second parameter is as follows. This parameter will control the effect of iScroll:
hScroll false 禁止横向滚动 true横向滚动 默认为true vScroll false 禁止垂直滚动 true垂直滚动 默认为true hScrollbar false隐藏水平方向上的滚动条 vScrollbar false 隐藏垂直方向上的滚动条 fadeScrollbar false 指定在无渐隐效果时隐藏滚动条 hideScrollbar 在没有用户交互时隐藏滚动条 默认为true bounce 启用或禁用边界的反弹,默认为true momentum 启用或禁用惯性,默认为true,此参数在你想要保存资源的时候非常有用 lockDirection false取消拖动方向的锁定,true拖动只能在一个方向上(up/down 或者left/right)
Methods in iScroll:
Of course, in the second parameter, there are also some methods that can be executed:
(1)scrollTo(x, y, time, relative) method: Pass in 4 parameters: X-axis scrolling distance, Y-axis scrolling distance, effect time, and whether it is relative to the current position. So for example:
//在200毫秒的时间内,Y轴向上滚动100像素; uw3c.scrollTo(0, -100, 200) //在200毫秒的时间内,相对于当前位置,X轴向左滚动100像素; uw3c.scrollTo(-100, 0, 200, true)
(2)refresh() method: After the DOM structure changes, iScroll needs to be refreshed, otherwise the scrolling plug-in will be instantiated inaccurately:
uw3c.refresh();//刷新iScroll
(3)onPosChange, is there a method that can return the change of position? You can check if there is an onPosChange method in the iScroll you are using:
onPosChange:function(x,y){ if(y < -200){ //如果Y周向上滚动200像素,$("#uw3c")就显示,否则就隐藏。 $("#uw3c").show(); }else{ $("#uw3c").hide(); } }
(4) onScrollEnd: event executed when the scroll ends. If you want to trigger an event when the scroll ends, this method will be useful:
//滚动结束后,执行的方法,滚动后会出现提示框alert("uw3c.com") onScrollEnd:function(){ alert("uw3c.com"); }
(5) onRefresh: After the DOM structure changes, iScroll needs to be refreshed, otherwise the scrolling plug-in will be instantiated inaccurately. onRefresh is the method that will be executed after iScroll is refreshed.
(6) onBeforeScrollStart: The time callback before starting scrolling. The default is to prevent the browser's default behavior.
(7) onScrollStart: callback to start scrolling.
(8) onBeforeScrollMove: Callback before content moves.
(9) onScrollMove: callback for content movement.
(10) onBeforeScrollEnd: callback before the end of scrolling.
(11) onTouchEnd: callback after the hand leaves the screen.
(12) onDestroy: callback to destroy the instance.
The above is the entire content of this article. I hope it will help everyone to use the iScroll.js mobile scroll bar plug-in proficiently.

Understanding how JavaScript engine works internally is important to developers because it helps write more efficient code and understand performance bottlenecks and optimization strategies. 1) The engine's workflow includes three stages: parsing, compiling and execution; 2) During the execution process, the engine will perform dynamic optimization, such as inline cache and hidden classes; 3) Best practices include avoiding global variables, optimizing loops, using const and lets, and avoiding excessive use of closures.

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

Python and JavaScript have their own advantages and disadvantages in terms of community, libraries and resources. 1) The Python community is friendly and suitable for beginners, but the front-end development resources are not as rich as JavaScript. 2) Python is powerful in data science and machine learning libraries, while JavaScript is better in front-end development libraries and frameworks. 3) Both have rich learning resources, but Python is suitable for starting with official documents, while JavaScript is better with MDNWebDocs. The choice should be based on project needs and personal interests.

The shift from C/C to JavaScript requires adapting to dynamic typing, garbage collection and asynchronous programming. 1) C/C is a statically typed language that requires manual memory management, while JavaScript is dynamically typed and garbage collection is automatically processed. 2) C/C needs to be compiled into machine code, while JavaScript is an interpreted language. 3) JavaScript introduces concepts such as closures, prototype chains and Promise, which enhances flexibility and asynchronous programming capabilities.

Different JavaScript engines have different effects when parsing and executing JavaScript code, because the implementation principles and optimization strategies of each engine differ. 1. Lexical analysis: convert source code into lexical unit. 2. Grammar analysis: Generate an abstract syntax tree. 3. Optimization and compilation: Generate machine code through the JIT compiler. 4. Execute: Run the machine code. V8 engine optimizes through instant compilation and hidden class, SpiderMonkey uses a type inference system, resulting in different performance performance on the same code.

JavaScript's applications in the real world include server-side programming, mobile application development and Internet of Things control: 1. Server-side programming is realized through Node.js, suitable for high concurrent request processing. 2. Mobile application development is carried out through ReactNative and supports cross-platform deployment. 3. Used for IoT device control through Johnny-Five library, suitable for hardware interaction.

I built a functional multi-tenant SaaS application (an EdTech app) with your everyday tech tool and you can do the same. First, what’s a multi-tenant SaaS application? Multi-tenant SaaS applications let you serve multiple customers from a sing

This article demonstrates frontend integration with a backend secured by Permit, building a functional EdTech SaaS application using Next.js. The frontend fetches user permissions to control UI visibility and ensures API requests adhere to role-base


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

SublimeText3 English version
Recommended: Win version, supports code prompts!

Dreamweaver CS6
Visual web development tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft