PageSourceSearch

https://www.larsonrealestate.com/scripts/homepage-c-listing-scroll.js

js larsonrealestate.com collected 2026-10-06 13:12:50 UTC 8,561 bytes, 240 lines download raw bytes

1(function($){
2
3	$(function(){
4		function setScrollMobile(delta){
5			if(delta === -1){
6				setScroll(true);
7			}
8			else if(delta === 1){
9				setScroll(false);
10			} else {
11				//do nothing
12			}
13		}
14
15		var forcedTabColor = '';
16
17		$('.single-agent-listings-tab1-tab').on('click',function(evt){
18			var isEdit = ($('body.sqs-edit-mode').length > 0)
19			if ( isEdit === true && $(evt.currentTarget).hasClass('single-agent-listings-tab-autotab') !== true) {
20				return
21			}
22			$('.single-agent-listings-selected').removeClass('single-agent-listings-selected');
23			$('.single-agent-listings-tab1-tab').addClass('single-agent-listings-selected'+forcedTabColor);
24			$('.single-agent-listings-tab1').addClass('showing');
25			$('.single-agent-listings-tab2').removeClass('showing');
26			$('.single-agent-listings-tab3').removeClass('showing');
27
28			$('.listing-gallery-scroll').css('left',0);
29			scrollX = 0;
30			itemCount = $(".listing-gallery-scroll .showing .grid-view-item").length
31			if(itemCount > 6){
32				$('.listing-gallery-scroll .showing .single-agent-listings-seemore').css('display','inline-block');
33			}
34		})
35		$('.single-agent-listings-tab2-tab').on('click',function(evt){
36			var isEdit = ($('body.sqs-edit-mode').length > 0)
37			if ( isEdit === true && $(evt.currentTarget).hasClass('single-agent-listings-tab-autotab') !== true) {
38				return
39			}
40			$('.single-agent-listings-selected').removeClass('single-agent-listings-selected');
41			$('.single-agent-listings-tab2-tab').addClass('single-agent-listings-selected'+forcedTabColor);
42			$('.single-agent-listings-tab1').removeClass('showing');
43			$('.single-agent-listings-tab2').addClass('showing');
44			$('.single-agent-listings-tab3').removeClass('showing');
45
46			$('.listing-gallery-scroll').css('left',0);
47			scrollX = 0;
48			itemCount = $(".listing-gallery-scroll .showing .grid-view-item").length
49			if(itemCount > 6){
50				$('.listing-gallery-scroll .showing .single-agent-listings-seemore').css('display','inline-block');
51			}
52		})
53
54		$('.single-agent-listings-tab3-tab').on('click',function(evt){
55			
56			var isEdit = ($('body.sqs-edit-mode').length > 0)
57			if ( isEdit === true && $(evt.currentTarget).hasClass('single-agent-listings-tab-autotab') !== true) {
58				return
59			}
60			$('.single-agent-listings-selected').removeClass('single-agent-listings-selected');
61			$('.single-agent-listings-tab3-tab').addClass('single-agent-listings-selected'+forcedTabColor);
62			$('.single-agent-listings-tab1').removeClass('showing');
63			$('.single-agent-listings-tab2').removeClass('showing');
64			$('.single-agent-listings-tab3').addClass('showing');
65
66			$('.listing-gallery-scroll').css('left',0);
67			scrollX = 0;
68			itemCount = $(".listing-gallery-scroll .showing .grid-view-item").length
69			if(itemCount > 6){
70				$('.listing-gallery-scroll .showing .single-agent-listings-seemore').css('display','inline-block');
71			}
72		})
73
74		$('.single-agent-listings-seemore.single-agent-seemore-tab1').on('click',function(evt){
75			var isEdit = ($('body.sqs-edit-mode').length > 0)
76			if ( isEdit ) {
77				return
78			}
79			$(this).css('cssText','display:none!important');
80			$('.single-agent-listings-tab1').addClass('show-more');
81		});
82		$('.single-agent-listings-seemore.single-agent-seemore-tab2').on('click',function(evt){
83			var isEdit = ($('body.sqs-edit-mode').length > 0)
84			if ( isEdit ) {
85				return
86			}
87			$(this).css('cssText', 'display:none!important');
88			$('.single-agent-listings-tab2').addClass('show-more');
89		});
90		$('.single-agent-listings-seemore.single-agent-seemore-tab3').on('click',function(evt){
91			
92			var isEdit = ($('body.sqs-edit-mode').length > 0)
93			if ( isEdit ) {
94				return
95			}
96			$(this).css('cssText', 'display:none!important');
97			$('.single-agent-listings-tab3').addClass('show-more');
98		});
99
100		$('.single-agent-listings-tab1-tab').addClass('single-agent-listings-selected');
101
102		//-------------------------------------------------------------------------------
103		waitFor(function(){
104			return $('.listing-gallery-scroll .showing .grid-view-item').length > 0;
105		}, function(){
106			if ($('.single-agent-listings-tab1 .grid-view-item').length > 0) {
107				console.log('single agent 1')
108				waitFor(function(){
109					return $('.single-agent-listings-tab1 .grid-view-item').length > 0;
110				}, hasItems)
111			} else if ($('.single-agent-listings-tab2 .grid-view-item').length > 0) {
112				console.log('single agent 2')
113				waitFor(function(){
114					return $('.single-agent-listings-tab2 .grid-view-item').length > 0;
115				}, hasItems)
116			} else if ($('.single-agent-listings-tab3 .grid-view-item').length > 0) {
117				console.log('single agent 3')
118				waitFor(function(){
119					return $('.single-agent-listings-tab3 .grid-view-item').length > 0;
120				}, hasItems)
121			} else {
122				waitFor(function(){
123					return $('.grid-view-item').length > 0;					
124				}, resizeWindow)
125			}
126		})
127
128		function hasItems(hasItems){
129			if (!hasItems){
130				console.warn("Listing Gallery: Did not load listing items?")
131				return
132			}
133			//if main color is black or too dark, then use a forced tab color.
134			var mainColor = $('.single-agent-page .single-agent-listings .single-agent-listings-header .single-agent-listings-selected *').first().css('color');
135			var bright = tinycolor(mainColor).getBrightness();
136			if (bright < 30){
137				forcedTabColor = ' forced-tab-color';
138				$('.single-agent-listings-tab1-tab').addClass('single-agent-listings-selected'+forcedTabColor)
139			}
140
141			if ($('.single-agent-listings-tab1 .grid-view-item').length > 6){
142				$('.single-agent-listings-tab1 .single-agent-listings-seemore').css('display','inline-block');
143			}
144			if ($('.single-agent-listings-tab2 .grid-view-item').length > 6){
145				$('.single-agent-listings-tab2 .single-agent-listings-seemore').css('display','inline-block');
146			}
147			if ($('.single-agent-listings-tab3 .grid-view-item').length > 6){
148				$('.single-agent-listings-tab3 .single-agent-listings-seemore').css('display','inline-block');
149			}
150
151			if ($('.listing-gallery-scroll .showing .grid-view-item').length > 0) {
152				itemCount = $(".listing-gallery-scroll .showing .grid-view-item").length
153				if(itemCount > 6){
154					$('.listing-gallery-scroll .showing .single-agent-listings-seemore').css('display','inline-block');
155				}
156			} else {
157				itemCount = $(".listing-gallery-scroll .grid-view-item").length
158			}
159
160			console.log(`init ${itemCount}`)
161			resizeWindow();
162		}
163
164		//-------------------------------------------------------------------------------
165		var scrollX = 0;
166		var listingWidth = 330;
167		var itemCount = 0;
168
169		var $window = $(window);
170		$window.on('resize',resizeWindow);
171
172		function resizeWindow(){
173
174			var windowW = $window.width();
175			$('.listing-gallery-scroll').css('left',0);
176			scrollX = 0
177
178			if ($('.single-agent-listings-tab1 .grid-view-item').length > 0) {
179				itemCount = $(".listing-gallery-scroll .single-agent-listings-tab1 .grid-view-item").length
180			} else if ($('.single-agent-listings-tab2 .grid-view-item').length > 0) {
181				itemCount = $(".listing-gallery-scroll .single-agent-listings-tab2 .grid-view-item").length
182			} else if ($('.single-agent-listings-tab3 .grid-view-item').length > 0) {
183				itemCount = $(".listing-gallery-scroll .single-agent-listings-tab3 .grid-view-item").length
184			} else {
185				itemCount = $(".listing-gallery-scroll .grid-view-item").length
186			}
187
188			if (windowW <= 768) {
189				var paddingLeft;
190				if (windowW <=640) {
191					//paddingLeft = 'calc(('+windowW+'px - 330px)/2)';
192					paddingLeft = 0;
193				} else {
194					paddingLeft = 60//'calc((100vw - 330px)/2)';
195				}
196				$('.YLOPO-widget .widget-gallery-container').css('padding-left',paddingLeft);
197			} else {
198				$('.YLOPO-widget .widget-gallery-container').css('padding-left',null);
199			}
200		}
201
202		function setScroll(direction){
203			//true is left, false is right
204			var isLeft = direction ? true : false;
205			if(isLeft){
206				scrollX++;
207				if (scrollX > 0) {
208					scrollX = 0;
209				}
210			} else {
211				scrollX--;
212				if (scrollX < -(itemCount-1)) {
213					scrollX = -(itemCount-1);
214				}
215			}
216
217			var css_scroll = listingWidth * scrollX
218			if(window.innerWidth < 640 ){
219				css_scroll = (100 * scrollX) + 'vw';
220			}
221
222			$('.listing-gallery-scroller').css('left', css_scroll);
223		}
224
225
226		$('.listing-scroller-arrows .scroll-left').bind('click', function(evt){
227			setScroll(true);
228		});
229
230		$('.listing-scroller-arrows .scroll-right').bind('click', function(evt){
231			setScroll(false);
232		});
233
234		if (isMobile.any) {
235			$('.listing-gallery-scroll .listing-gallery-scroller').each(function(i,o){
236				window.initHammerVerticalSwipe(o, setScrollMobile);
237			});
238		}
239	});
240})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.