How to use scrollleft method in pyatom

Best Python code snippet using pyatom_python

slider_deslizante.py

Source:slider_deslizante.py Github

copy

Full Screen

1__pragma__("alias","array_from","Array.from")2c=03class Slider(object):4 def __init__(self,5 selector,6 data={"velocity":1,7 "direction":"left",8 "orientation":"horizontal",9 "width":"auto",10 "height":"auto"}) -> Slider:11 if type(selector)==str:12 self.document=document.querySelectorAll(selector)13 elif NodeList.prototype.isPrototypeOf(selector):14 self.document=selector15 elif Node.prototype.isPrototypeOf(selector):16 self.document=[selector]17 else:18 self.document=selector19 self.maxdistance=020 self.second_delay=021 self.direction=data["direction"] if "direction" in data else "left"22 self.orientation=data["orientation"] if "orientation" in data else "horizontal"23 self.height=data["height"] if type(data["height"])==str else f"{data['height']}px"24 self.width=data["width"] if type(data["width"])==str else f"{data['width']}px"25 self.velocity=data["velocity"] if "velocity" in data else 126 self.mode="prod"27 self.sliders={}28 29 30 31 def loop(self,slider):32 def fn(slider): 33 34 node=self.document[slider].querySelector(".slowslider-content")35 doc=self.sliders[slider]36 37 if not doc.paused:38 39 if self.direction=="left":40 41 node.scrollLeft+=142 self.sliders[slider]["scrollleft"]=node.scrollLeft43 44 if node.scrollLeft>=self.sliders[slider]["maxdistance"]:45 node.scrollLeft=046 self.sliders[slider]["scrollleft"]=node.scrollLeft47 elif self.direction=="right":48 node.scrollLeft-=149 self.sliders[slider]["scrollleft"]=node.scrollLeft50 constante=3551 if node.scrollLeft<=((node.maxscroll*(self.sliders[slider]["maxdistance"]-node.offsetWidth))/node.scrollWidth)+constante:#3552 53 node.scrollLeft=node.scrollWidth54 self.sliders[slider]["control"]=False55 if not self.sliders[slider]["control"]:56 self.sliders[slider]["control"]=True57 setTimeout(lambda:fn(slider),self.sliders[slider]["second_delay"])58 59 def dragstart(self,evt):60 61 for k,elem in enumerate(self.document):62 found=True63 for slider in evt.path:64 if elem==slider:65 break66 else:67 found=False68 if found:69 break70 slider.x=evt.clientX71 slider.y=evt.clientY72 slider.paused=True73 74 75 def drag(self,evt):76 for k,elem in enumerate(self.document):77 found=True78 for slider in evt.path:79 if elem==slider:80 break81 else:82 found=False83 if found:84 break85 86 87 88 89 dx=evt.clientX-slider.x90 dy=evt.clientY-slider.y91 slider.x=evt.clientX92 slider.y=evt.clientY93 slider.paused=True94 if self.orientation=="horizontal":95 slider.querySelector(".slowslider-content").scrollLeft+=dx96 self.sliders[k]["scrollleft"]=slider.querySelector(".slowslider-content").scrollLeft97 #slider.scrollleft=self.sliders[k]["scrollleft"]98 elif self.orientation=="vertical":99 slider.querySelector(".slowslider-content").scrollTop+=dy100 #slider.scrollltop=self.slider[k]["scrolltop"]101 102 def dragend(self,evt):103 104 for k,elem in enumerate(self.document):105 found=True106 for slider in evt.path:107 if elem==slider:108 break109 else:110 found=False111 if found:112 break113 114 115 116 slider.querySelector(".slowslider-content").scrollLeft=self.sliders[k]["scrollleft"]117 118 slider.paused=False119 def mouseover(self,evt):120 121 for k,elem in enumerate(self.document):122 found=True123 for slider in evt.path:124 if elem==slider:125 break126 else:127 found=False128 if found:129 break130 131 #slider.paused=True132 self.sliders[k]["second_delay"]=50133 def mouseout(self,evt):134 135 for k,elem in enumerate(self.document):136 found=True137 for slider in evt.path:138 if elem==slider:139 break140 else:141 found=False142 if found:143 break144 #slider.paused=False145 self.sliders[k]["second_delay"]=0146 147 148 def recursive(self,node,fn):149 150 for node in node.children:151 fn(node)152 self.recursive(node,fn)153 154 def reload(self):155 156 for k,doc in enumerate(self.document):157 node=doc.querySelector("[data-height]")158 if node!=None:159 self.height=node.attributes["data-height"].value160 if "data-velocity" in node.attributes:161 self.velocity=int(node.attributes["data-velocity"].value.replace("px",""))162 if "data-width" in node.attributes:163 self.width=node.attributes["data-width"].value164 if "data-direction" in node.attributes:165 self.direction=node.attributes["data-direction"].value166 if "data-orientation" in node.attributes:167 self.orientation=node.attributes["data-orientation"].value168 169 #self.recursive(doc,lambda node: setattr(node.style,"maxHeight",self.height))170 clones=[]171 doc.maxdistance=0172 children=doc.querySelector(".slowslider-content").children173 for node in children:174 if "data-clone" in node.attributes:175 node.remove()176 children=doc.querySelector(".slowslider-content").children177 for node in children:178 clones.append(node.cloneNode(True))179 self.sliders[k]["maxdistance"]+=node.offsetWidth 180 for node in clones:181 node.setAttribute("data-clone",True)182 doc.querySelector(".slowslider-content").appendChild(node)183 184 185 def run(self):186 187 for k,doc in enumerate(self.document):188 doc.setAttribute("draggable",True)189 doc.paused=False190 if "slider" in dir(doc):191 clearInterval(doc.sider.mainloop)192 del doc.slider193 #doc.addEventListener("dragstart",self.dragstart)194 #doc.addEventListener("drag",self.drag)195 #doc.addEventListener("dragend",self.dragend)196 doc.addEventListener("mouseover",self.mouseover)197 doc.addEventListener("mouseout",self.mouseout)198 self.sliders[k]={}199 self.sliders[k]["scrollleft"]=0200 self.sliders[k]["scrolltop"]=0201 self.sliders[k]["second_delay"]=0202 self.sliders[k]["control"]=False203 self.sliders[k]["maxdistance"]=0204 doc.slider=self205 node=doc.querySelector(".slowslider-content")206 if self.mode=="prod":207 node.style.overflow="hidden" 208 elif self.mode=="edit":209 node.style.overflow="scroll" 210 if self.orientation=="horizontal":211 node.style.flexDirection="row";212 elif self.orientation=="vertical":213 node.style.flexDirection="column";214 node.style.height=height;215 216 node.style.height=self.height;217 node.style.width=self.width;218 node.style.display="flex";219 node.style.flexDirection="row";220 221 self.reload()222 if self.direction=="right":223 node.scrollLeft=node.scrollWidth224 self.sliders[k]["maxdistance"]+=node.offsetWidth225 self.maxscroll=node.scrollLeft226 if self.mode=="prod":227 doc.mainloop=setInterval(lambda: self.loop(k),self.velocity)228 ...

Full Screen

Full Screen

script.py

Source:script.py Github

copy

Full Screen

1from mixt import Element, html2# language=JS3JS = """4/* <components.script.VendoredScripts> */5// "focus-within" polyfill: https://gist.github.com/aFarkas/a7e0d85450f323d5e1646(function(window, document){7 'use strict';8 var slice = [].slice;9 var removeClass = function(elem){10 elem.classList.remove('focus-within');11 };12 var update = (function(){13 var running, last;14 var action = function(){15 var element = document.activeElement;16 running = false;17 if(last !== element){18 last = element;19 slice.call(document.getElementsByClassName('focus-within')).forEach(removeClass);20 while(element && element.classList){21 element.classList.add('focus-within');22 element = element.parentNode;23 }24 }25 };26 return function(){27 if(!running){28 requestAnimationFrame(action);29 running = true;30 }31 };32 })();33 document.addEventListener('focus', update, true);34 document.addEventListener('blur', update, true);35 update();36})(window, document);37// "scrollIntoView" only if needed: https://github.com/stipsan/scroll-into-view-if-needed38!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.scrollIntoView=e()}(this,function(){"use strict";var t,e=function(){return t||(t="CSS1Compat"===document.compatMode?document.documentElement:document.scrollingElement||document.documentElement),t},o=function(t){return null!=t&&"object"==typeof t&&(1===t.nodeType||11===t.nodeType)},i=function(t,e){return"X"===e?t.clientWidth<t.scrollWidth:t.clientHeight<t.scrollHeight},n=function(t,e,o){var i=getComputedStyle(t,null)["overflow"+e];return(!o||"hidden"!==i)&&("visible"!==i&&"clip"!==i)},r=function(t,o){return t===e()||i(t,"Y")&&n(t,"Y",o)||i(t,"X")&&n(t,"X",o)},l=function(t,e,o,i,n,r,l,f){return r<t&&l>e||r>t&&l<e?0:r<t&&f<o||l>e&&f>o?r-t-i:l>e&&f<o||r<t&&f>o?l-e+n:0},f=function(t,i){void 0===i&&(i={});var n=i,f=n.scrollMode,c=void 0===f?"always":f,d=n.block,s=void 0===d?"center":d,u=n.inline,h=void 0===u?"nearest":u,a=n.boundary,p=n.skipOverflowHiddenElements,v=void 0!==p&&p,w="function"==typeof a?a:function(t){return t!==a};if(!o(t))throw new Error("Element is required in scrollIntoView");for(var m,g=t.getBoundingClientRect(),b=[];o(m=t.parentNode||t.host)&&w(t);)r(m,v)&&b.push(m),t=m;var y,T,L=e(),M=window.visualViewport?window.visualViewport.width:Math.min(L.clientWidth,window.innerWidth),H=window.visualViewport?window.visualViewport.height:Math.min(L.clientHeight,window.innerHeight),W=window.scrollX||window.pageXOffset,C=window.scrollY||window.pageYOffset;if("if-needed"===c&&b.every(function(t){var e=t.getBoundingClientRect();if(g.top<e.top)return!1;if(g.bottom>e.bottom)return!1;if(t===L){if(g.bottom>H||g.top<0)return!1;if(g.left>M||g.right<0)return!1}return!0}))return[];return b.map(function(t){var e=t.getBoundingClientRect(),o=getComputedStyle(t),i=parseInt(o.borderLeftWidth,10),n=parseInt(o.borderTopWidth,10),r=parseInt(o.borderRightWidth,10),f=parseInt(o.borderBottomWidth,10),c=0,d=0;if("start"===s)if(y||(y=g.top),L===t)c=C+y;else{var u=Math.min(y-e.top,t.scrollHeight-t.clientHeight-t.scrollTop);c=t.scrollTop+u-n}if("center"===s)if(y||(y=g.top+g.height/2),L===t)c=C+y-H/2;else{var a=0-Math.min(e.top+e.height/2-y,t.scrollTop);c=t.scrollTop+a}if("end"===s)if(y||(y=g.bottom),L===t)c=C+y-H;else{var p=0-Math.min(e.bottom-y,t.scrollTop);c=t.scrollTop+p+f}if("nearest"===s)if(y||(y=g.top),L===t){var v=l(C,C+H,H,n,f,C+y,C+y+g.height,g.height);c=C+v}else{var w=l(e.top,e.bottom,e.height,n,f,y,y+g.height,g.height);c=t.scrollTop+w}if("start"===h)if(T||(T=g.left),L===t)d=W+T;else{var m=Math.min(T-e.left,t.scrollHeight-t.clientLeft-t.scrollLeft);d=t.scrollLeft+m-i}if("center"===h)if(T||(T=g.left+g.width/2),L===t)d=W+T-M/2;else{var b=0-Math.min(e.left+e.width/2-T,t.scrollLeft);d=t.scrollLeft+b}if("end"===h)if(T||(T=g.right),L===t)d=W+T-M;else{var E=0-Math.min(e.right-T,t.scrollLeft);d=t.scrollLeft+E+r}if("nearest"===h)if(T||(T=g.left),L===t){var k=l(W,W+M,M,i,r,W+T,W+T+g.width,g.width);d=W+k}else{var I=l(e.left,e.right,e.width,i,r,T,T+g.width,g.width);d=t.scrollLeft+I}return y+=t.scrollTop-c,T+=t.scrollLeft-d,{el:t,top:c,left:d}})},c=function(t){return"function"==typeof t},d=function(t){return t===Object(t)&&0!==Object.keys(t).length},s=function(t,o){void 0===o&&(o="auto");var i=e(),n="scrollBehavior"in i.style;t.forEach(function(t){var e=t.el,r=t.top,l=t.left;e.scroll&&n?e.scroll({top:r,left:l,behavior:o}):e===i?window.scrollTo(l,r):(e.scrollTop=r,e.scrollLeft=l)})},u=function(t){return void 0===t&&(t=!0),!0===t||null===t?{block:"start",inline:"nearest"}:!1===t?{block:"end",inline:"nearest"}:d(t)?t:{block:"start",inline:"nearest"}};return function(t,e){if(void 0===e&&(e=!0),d(e)&&c(e.behavior))return e.behavior(f(t,e));var o=u(e);return s(f(t,o),o.behavior)}});39/* </components.script.VendoredScripts> */40"""41class VendoredScripts(Element):42 class PropTypes:43 with_tag: bool = True44 def render(self, context):45 js = html.Raw(JS)...

Full Screen

Full Screen

scrollLeft.js

Source:scrollLeft.js Github

copy

Full Screen

1module('baidu.dom.scrollLeft');2test("baidu.dom().scrollLeft()", function(){3 var div, textarea, body, iframe;4 div = create( "div", 100, 100 );5 textarea = create( "textarea", 100, 100 );6// body = create( "body", 100, 100 );7// iframe = create( "iframe", 100, 100 );8 equal( div.scrollLeft(), 100, "div scrollLeft" );9 equal( textarea.scrollLeft(), 0, "textarea scrollLeft" );//textarea没有横向滚动条10// equal( body.scrollLeft(), 100, "body scrollLeft" );11// equal( iframe.scrollLeft(), 100, "iframe scrollLeft" );12 $.each( [ div, textarea ], function( index, item ){ item.remove(); } );13});14test("baidu.dom().scrollLeft(value)", function(){15 var div, textarea, body, iframe;16 div = create( "div" );17 textarea = create( "textarea" );18// body = create( "body" );19// iframe = create( "iframe" );20 equal( div.scrollLeft( 200 ).scrollLeft(), 200, "div scrollLeft" );21 equal( textarea.scrollLeft( 100 ).scrollLeft(), 0, "textarea scrollLeft" );22// equal( body.scrollLeft( 100 ).scrollLeft(), 100, "body scrollLeft" );23// equal( iframe.scrollLeft( 100 ).scrollLeft(), 100, "iframe scrollLeft" );24 $.each( [ div, textarea ], function( index, item ){ item.remove(); } );25});26test("baidu.dom().scrollLeft( NaN )", function(){27 var div, textarea, body, iframe;28 div = create( "div" );29 textarea = create( "textarea" );30// body = create( "body" );31// iframe = create( "iframe" );32 equal( div.scrollLeft( NaN ).scrollLeft(), 0, "div scrollLeft" );33 equal( textarea.scrollLeft( NaN ).scrollLeft(), 0, "textarea scrollLeft" );34// equal( body.scrollLeft( NaN ).scrollLeft(), 0, "body scrollLeft" );35// equal( iframe.scrollLeft( NaN ).scrollLeft(), 0, "iframe scrollLeft" );36 $.each( [ div, textarea ], function( index, item ){ item.remove(); } );37});38test("baidu.dom().scrollLeft( -n )", function(){39 var div, textarea, body, iframe;40 div = create( "div" );41 textarea = create( "textarea" );42// body = create( "body" );43// iframe = create( "iframe" );44 equal( div.scrollLeft( -100 ).scrollLeft(), 0, "div scrollLeft" );45 equal( textarea.scrollLeft( -100 ).scrollLeft(), 0, "textarea scrollLeft" );46// equal( body.scrollLeft( 100 ).scrollLeft( -100 ).scrollLeft(), 100, "body scrollLeft" );47// equal( iframe.scrollLeft( -100 ).scrollLeft(), 0, "iframe scrollLeft" );48 $.each( [ div, textarea ], function( index, item ){ item.remove(); } );49});50test("baidu.dom().scrollLeft( n.n )", function(){51 var div, textarea, body, iframe;52 div = create( "div" );53 textarea = create( "textarea" );54// body = create( "body" );55// iframe = create( "iframe" );56 equal( div.scrollLeft( 10.5 ).scrollLeft(), 10, "div scrollLeft" );//保持和jq一致57 equal( textarea.scrollLeft( 10.5 ).scrollLeft(), 0, "textarea scrollLeft" );58// equal( body.scrollLeft( 10.5 ).scrollLeft(), 11, "body scrollLeft" );59// equal( iframe.scrollLeft( 10.5 ).scrollLeft(), 11, "iframe scrollLeft" );60 $.each( [ div, textarea ], function( index, item ){ item.remove(); } );61});62function create( tag, sLeft, sTop ){63 var el = document.createElement( tag );64 document.body.appendChild( el );65 66 if( tag == "div" )67 el.style.overflow = "scroll";68 69 el[tag === 'textarea' ? 'value' : 'innerHTML'] = new Array(50).join('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz<br/>\n');70 71 el.style.width =72 el.style.height = '100px';73 74 if( typeof sLeft != "undefined" )75 el.scrollLeft = sLeft;76 if( typeof sTop != "undefined" )77 el.scrollTop = sTop;78 79 var El = baidu.dom( el );80 El.remove = function(){81 document.body.removeChild( el );82 }83 return El;84}85test("dom为空的情况",function(){86 var result = baidu("#baidujsxiaozu").scrollLeft();87 equal(result,0,'get方法');88 var result = baidu("#baidujsxiaozu").scrollLeft(1231231);89 ok(result,'有东西就行');...

Full Screen

Full Screen

dir-helper.js

Source:dir-helper.js Github

copy

Full Screen

1/**2 * @license3 * Copyright (c) 2021 - 2022 Vaadin Ltd.4 * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/5 */6/**7 * Helper that provides a set of functions for RTL.8 */9class DirHelper {10 /**11 * Get the scroll type in the current browser view.12 *13 * @return {string} the scroll type. Possible values are `default|reverse|negative`14 */15 static detectScrollType() {16 const dummy = document.createElement('div');17 dummy.textContent = 'ABCD';18 dummy.dir = 'rtl';19 dummy.style.fontSize = '14px';20 dummy.style.width = '4px';21 dummy.style.height = '1px';22 dummy.style.position = 'absolute';23 dummy.style.top = '-1000px';24 dummy.style.overflow = 'scroll';25 document.body.appendChild(dummy);26 let cachedType = 'reverse';27 if (dummy.scrollLeft > 0) {28 cachedType = 'default';29 } else {30 dummy.scrollLeft = 2;31 if (dummy.scrollLeft < 2) {32 cachedType = 'negative';33 }34 }35 document.body.removeChild(dummy);36 return cachedType;37 }38 /**39 * Get the scrollLeft value of the element relative to the direction40 *41 * @param {string} scrollType type of the scroll detected with `detectScrollType`42 * @param {string} direction current direction of the element43 * @param {Element} element44 * @return {number} the scrollLeft value.45 */46 static getNormalizedScrollLeft(scrollType, direction, element) {47 const { scrollLeft } = element;48 if (direction !== 'rtl' || !scrollType) {49 return scrollLeft;50 }51 switch (scrollType) {52 case 'negative':53 return element.scrollWidth - element.clientWidth + scrollLeft;54 case 'reverse':55 return element.scrollWidth - element.clientWidth - scrollLeft;56 default:57 return scrollLeft;58 }59 }60 /**61 * Set the scrollLeft value of the element relative to the direction62 *63 * @param {string} scrollType type of the scroll detected with `detectScrollType`64 * @param {string} direction current direction of the element65 * @param {Element} element66 * @param {number} scrollLeft the scrollLeft value to be set67 */68 static setNormalizedScrollLeft(scrollType, direction, element, scrollLeft) {69 if (direction !== 'rtl' || !scrollType) {70 element.scrollLeft = scrollLeft;71 return;72 }73 switch (scrollType) {74 case 'negative':75 element.scrollLeft = element.clientWidth - element.scrollWidth + scrollLeft;76 break;77 case 'reverse':78 element.scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft;79 break;80 default:81 element.scrollLeft = scrollLeft;82 break;83 }84 }85}...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run pyatom automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful