PageSourceSearch

https://plecakiwalizka.com/wp-content/plugins/trx_addons/addons/bg-colors/bg-colors.js

js plecakiwalizka.com collected 2026-10-05 19:33:10 UTC 5,302 bytes, 161 lines download raw bytes

1/* global jQuery */
2
3(function() {
4
5	"use strict";
6
7	var $window             = jQuery( window ),
8		$document           = jQuery( document ),
9		$body               = jQuery( 'body' );
10
11	var bg_colors_sections = [],
12		bg_colors_selectors = [];
13
14	// Init bg colors
15	$document.on('action.init_trx_addons', function() {
16
17		var bg_colors_calc_sections_pos = trx_addons_debounce( function() {
18			if ( bg_colors_sections.length ) {
19				var offset = false;
20				for ( var i = 0; i < bg_colors_sections.length; i++ ) {
21					offset = bg_colors_sections[i].offset();
22					bg_colors_sections[i].data( {
23						'trx-bg-colors-section-top': offset.top,
24						'trx-bg-colors-section-middle': offset.top + bg_colors_sections[i].outerHeight() / 2
25					} );
26				}
27			}
28		}, 100 );
29	
30		// Update global values
31		$document.on( 'action.resize_trx_addons', function() {
32			bg_colors_calc_sections_pos();
33		} );
34	
35		var smoke_present = $body.hasClass( 'trx_addons_smoke_present' ),
36			smoke_selector = '.trx_addons_smoke_place_body';
37
38		jQuery( '[data-trx-bg-colors-color]' ).each( function() {
39			var $self = jQuery( this ),
40				selector = $self.data('trx-bg-colors-selector')
41							|| ( ! smoke_present ? TRX_ADDONS_STORAGE['bg_colors_selector'] : smoke_selector );
42			if ( ! selector ) {
43				var id = 'trx_bg_colors_' + trx_addons_get_unique_id();
44				$body.append( '<div id="' + id + '" class="trx_bg_colors"></div>' );
45				TRX_ADDONS_STORAGE['bg_colors_selector'] = selector = 'body > #' + id;
46			}
47			if ( selector ) {
48				var $target = jQuery( selector ),
49					offset  = $self.offset();
50				if ( $target.length ) {
51					$self.data( {
52						'trx-bg-colors-section-top': offset.top,
53						'trx-bg-colors-section-middle': offset.top + $self.outerHeight() / 2,
54						'trx-bg-colors-target-selector': selector,
55						'trx-bg-colors-target': $target
56					} );
57					bg_colors_sections.push( $self );
58					if ( bg_colors_selectors.indexOf( selector ) < 0 ) {
59						bg_colors_selectors.push( selector );
60					}
61				} else {
62					$self.removeAttr( 'data-trx-bg-colors-color' );
63					$self.removeAttr( 'data-trx-bg-colors-selector' );
64				}
65			}
66			if ( bg_colors_sections.length ) {
67				$body.addClass( 'with_bg_colors' );
68			}
69		} );
70
71		// Draw background on scroll
72		$document.on( 'action.scroll_trx_addons', function() {
73			bg_colors_draw();
74		} );
75
76		// Draw background on init hidden elements
77		$document.on( 'action.got_ajax_response action.init_hidden_elements', function() {
78			bg_colors_calc_sections_pos();
79			bg_colors_draw();
80		} );
81
82	} );
83
84
85	// Set background color
86	function bg_colors_draw() {
87
88		var wh = trx_addons_window_height(),
89			wm = trx_addons_window_scroll_top() + wh / 2,
90			alpha,
91			start_color, start_middle, end_color, end_middle,
92			cur_color, cur_middle, cur_selector, $cur_target,
93			smoke_selector = '.trx_addons_smoke_place_body',
94			theme_bg_color = typeof TRX_ADDONS_STORAGE['theme_bg_color'] != 'undefined' ? TRX_ADDONS_STORAGE['theme_bg_color'] : '';
95
96		for ( var s = 0; s < bg_colors_selectors.length; s++ ) {
97			cur_selector = bg_colors_selectors[s];
98			alpha = 255;
99			start_color = '';
100			start_middle = 0;
101			end_color = '';
102			end_middle = 0;
103			cur_color = '';
104			cur_middle = 0;
105			$cur_target = '';
106			for ( var i = 0; i < bg_colors_sections.length; i++ ) {
107				if ( cur_selector != bg_colors_sections[i].data( 'trx-bg-colors-target-selector' ) ) continue;
108				cur_middle  = bg_colors_sections[i].data( 'trx-bg-colors-section-middle' );
109				cur_color   = bg_colors_sections[i].data( 'trx-bg-colors-color' );
110				$cur_target = bg_colors_sections[i].data( 'trx-bg-colors-target' );
111				if ( cur_middle < wm ) {
112					start_middle = cur_middle;
113					start_color  = cur_color;
114				} else {
115					if ( ! start_color ) {
116						start_middle = Math.max( 0, Math.min( cur_middle - wh, wh / 2 ) );
117						start_color  = theme_bg_color ? theme_bg_color : cur_color;
118						alpha  = 0;
119					}
120					end_middle = cur_middle;
121					end_color  = cur_color;
122					break;
123				}
124			}
125			if ( start_color && ! end_color ) {
126				end_middle = cur_middle + wh;
127				end_color  = theme_bg_color ? theme_bg_color : cur_color;
128				alpha  = 1;
129			}
130			if ( start_color && end_color && ( start_color != end_color || alph
130a === 0 || alpha === 1 ) ) {
131				var rgb_start = trx_addons_hex2rgb( start_color ),
132					rgb_end   = trx_addons_hex2rgb( end_color ),
133					distance  = Math.max( 0, Math.min( 1, ( wm - start_middle ) / ( end_middle - start_middle ) ) );
134				rgb_start['r'] += Math.round( ( rgb_end['r'] - rgb_start['r'] ) * distance );
135				rgb_start['g'] += Math.round( ( rgb_end['g'] - rgb_start['g'] ) * distance );
136				rgb_start['b'] += Math.round( ( rgb_end['b'] - rgb_start['b'] ) * distance );
137				cur_color = trx_addons_components2hex( rgb_start['r'], rgb_start['g'], rgb_start['b'],
138								theme_bg_color
139									? false
140									: ( alpha === 0
141										? Math.round( 255 * distance )
142										: ( alpha === 1
143											? Math.round( 255 * 1 - distance )
144											: false
145											)
146										)
147							);
148			}
149			if ( cur_color ) {
150				if ( cur_selector == smoke_selector ) {
151					if ( typeof window.trx_addons_smoke_set_bg_color != 'undefined' ) {
152						trx_addons_smoke_set_bg_color( cur_color );
153					}
154				} else {
155					$cur_target.css( 'background-color', cur_color );
156				}
157			}
158		}
159	}
160
161})();

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.