-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcollection-hover-js
218 lines (186 loc) · 11.6 KB
/
collection-hover-js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
// ALL JS for collection hover and carousels
$('.swatch-wrap .mini-featured a').click(function(e){
if('ontouchstart' in document.documentElement || iOS()){
e.preventDefault();
$(".mini-featured").trigger('hover');
}
})
if (window.location.href.indexOf("/products/") > -1) {
$(".mini-featured").hover(function (e) {
$(this).closest('.swatch-wrap').find('.mini-featured.active').removeClass('active');
$(this).addClass('active')
var color_name = $(this).closest('.swatch-wrap').find('.mini-featured.active .skjj').html();
console.log(color_name)
//name change animation
if(!$(this).hasClass('default')){
console.log($(this).parent().parent().find("#color-title"))
$(this).parent().parent().find("#color-title").fadeOut(200, function() {
$(this).html(color_name).fadeIn(200);
});
}
},
function () {
//stuff to do on mouse leave
$(this).closest('.swatch-wrap').find('.mini-featured.active').removeClass('active');
$(this).closest('.swatch-wrap').find('.mini-featured.default').addClass('active')
var color_name = $(this).closest('.swatch-wrap').find('.mini-featured.active .skjj').html();
if(!$(this).hasClass('default')){
$(this).parent().parent().find("#color-title").fadeOut(200, function() {
$(this).html(color_name).fadeIn(200);
});
}else{
$(this).parent().parent().find("#color-title").html(color_name)
}
});
$(".mini-featured").click(function(){
window.location.href= $(this).closest('.swatch-wrap').find('.mini-featured.active a').prop('href')
})
}else{
// $(".mini-featured").hover(function (e) {
$(document).on('mouseenter', '.mini-featured', function(e) {
$(this).closest('.swatch-wrap').find('.mini-featured.active').removeClass('active');
$(this).addClass('active')
var data_href = $(this).find('a.swatch-pro-link').prop('href');
$(this).closest('.block-inner').find('button.swym-button.swym-add-to-wishlist-view-product').hide();
$(this).closest('.block-inner').find('button.swym-button.swym-add-to-wishlist-view-product').each(function(){
console.log($(this).data('product-url'))
console.log(data_href)
if($(this).data('product-url').includes(data_href)){
$(this).show();
}
})
var imgUrl = $(this).closest('.mini-featured').find('.swatch-pI-url').html(),
hoverUrl = $(this).closest('.mini-featured').find('.swatch-pI-hoverurl').html(),
productUrl = $(this).closest('.mini-featured').find('.swatch-p-url').html(),
proPrice = $(this).closest('.mini-featured').find('.swatch-p-money').html(),
proComparePrice = $(this).closest('.mini-featured').find('.swatch-c-money').html(),
available = $(this).closest('.mini-featured').find('.swatch-p-available').html(),
availableSizes = $(this).closest('.mini-featured').find('.swatch-available-sizes').html(),
tag = $(this).closest('.mini-featured').find('.swatch-p-tag').html()
var getPerOff = proComparePrice!="$0.00"?100-Math.ceil(parseFloat(proPrice.replace('$',''))*100/parseFloat(proComparePrice.replace('$',''))):''
console.log(getPerOff)
if(getPerOff==''){
$(this).closest('.block-inner-inner').find(".product-label.product-label--sale span").fadeOut();
}else{
$(this).closest('.block-inner-inner').find(".product-label.product-label--sale span").fadeIn().html(getPerOff+'% off');
}
changeUrlOnHover(imgUrl, hoverUrl, productUrl, proPrice, proComparePrice, available, availableSizes,tag, $(this))
var color_name = $(this).closest('.swatch-wrap').find('.mini-featured.active .skjj').html();
//name change animation
if(!$(this).hasClass('default')){
$(this).closest('.innerer').find("#color-title").fadeOut(200, function() {
$(this).html(color_name).fadeIn(200);
});
}else{
$(this).closest('.innerer').find("#color-title").html(color_name).fadeIn(200);
}
})
}
function changeUrlOnHover(imgUrl, hoverUrl, productUrl, proPrice, proComparePrice, available, availableSizes,tagHTML, obj){
// console.log(obj.parent().parent().parent().closest('.block-inner-inner').find('.my-new-img'))
toDataURL("https:"+hoverUrl.trim(), function(dataUrl) {
obj.parent().parent().parent().closest('.block-inner-inner').find('.my-new-img').css('visibility', 'hidden')
obj.parent().parent().parent().closest('.block-inner-inner').find('.my-new-img').css('background-image', 'url("'+dataUrl+'")');
obj.parent().parent().parent().closest('.block-inner-inner').find('.my-new-img').delay(500).css('visibility', 'visible');
})
toDataURL("https:"+imgUrl.trim(), function(dataUrl) {
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-block__image.product-block__image--active img').css('visibility', 'hidden')
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-block__image.product-block__image--active img').prop('srcset', dataUrl)
setTimeout(function(){
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-block__image.product-block__image--active img').css('visibility', 'visible')
},600)
})
//Changing 3x or 2x Banner
// console.log(obj.parent().parent().parent().closest('.block-inner-inner').find('.shasta'))
console.log(parseInt(obj.closest('.mini-featured').find('.swatch-p-sum').html()))
if(parseInt(obj.closest('.mini-featured').find('.swatch-p-sum').html()) > 0 && parseInt(obj.closest('.mini-featured').find('.swatch-p-sum').html()) < 20 ){
obj.parent().parent().parent().closest('.block-inner-inner').find('.image-cont.image-cont--with-secondary-image .sldout.shasta').show();
}else{
obj.parent().parent().parent().closest('.block-inner-inner').find('.image-cont.image-cont--with-secondary-image .sldout.shasta').hide();
}
console.log(parseInt(obj.closest('.mini-featured').find('.swatch-zero-inventory-sum').html()));
if(obj.closest('.mini-featured').find('.shasta.fave').length > 0){
obj.parent().parent().parent().closest('.block-inner-inner').find('.image-cont.image-cont--with-secondary-image .shasta.fave').show();
}else{
obj.parent().parent().parent().closest('.block-inner-inner').find('.image-cont.image-cont--with-secondary-image .shasta.fave').hide();
}
if(parseInt(obj.closest('.mini-featured').find('.swatch-zero-inventory-sum').html()) > 2){
obj.parent().parent().parent().closest('.block-inner-inner').find('.image-cont.image-cont--with-secondary-image .lowin.shasta').show();
}else{
obj.parent().parent().parent().closest('.block-inner-inner').find('.image-cont.image-cont--with-secondary-image .lowin.shasta').hide();
}
// console.log(tagHTML)
obj.parent().parent().parent().closest('.block-inner-inner').find('.image-cont.image-cont--with-secondary-image').prepend(tagHTML)
//End Banner change
// obj.parent().parent().parent().closest('.block-inner-inner').find('.my-new-img')[0].style.backgroundImage = 'url("https:'+imgUrl.trim()+'")';
// obj.parent().parent().parent().closest('.block-inner-inner').find('.my-new-img').css('background', 'red');
// console.log(obj.parent().parent().parent().closest('.block-inner-inner').find('a.product-link'))
obj.parent().parent().parent().closest('.block-inner-inner').find('a.product-link').each(function(){
$(this).prop('href', productUrl)
})
obj.parent().parent().parent().closest('.block-inner-inner').find('a.quickbuy-toggle').each(function(){
$(this).prop('href', productUrl)
})
console.log(proPrice)
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-price span.product-price__amount.theme-money').html(proPrice)
if(proComparePrice != '$0.00'){
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-price span.product-price__compare.theme-money').html(proComparePrice)
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-price span.price-label.price-label--sale').show()
}else{
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-price span.product-price__compare.theme-money').html('')
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-price span.price-label.price-label--sale').hide()
}
if(available == 'false'){
obj.parent().parent().parent().closest('.block-inner-inner').find('.soldout.shasta').show()
if(obj.parent().parent().parent().closest('.block-inner-inner').find('.product-price span.price-label.price-label--sold-out')){
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-price span.price-label.price-label--sold-out').html('Sold Out')
}else{
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-price').append(`<span class="product-price__item price-label price-label--sold-out">Sold Out</span>`)
}
}else{
obj.parent().parent().parent().closest('.block-inner-inner').find('.soldout.shasta').hide()
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-price span.price-label.price-label--sold-out').html('')
}
obj.parent().parent().parent().closest('.block-inner-inner').find('.product-block-options .product-block-options__inner').html(availableSizes)
}
function toDataURL(src, callback, outputFormat) {
var img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function() {
var canvas = document.createElement('CANVAS');
var ctx = canvas.getContext('2d');
var dataURL;
canvas.height = this.naturalHeight;
canvas.width = this.naturalWidth;
ctx.drawImage(this, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
callback(dataURL);
};
img.src = src;
if (img.complete || img.complete === undefined) {
img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
img.src = src;
}
}
$(document).on('click','a.image-page-button.image-page-button--next', function(e){
e.preventDefault();
//product-block__image--inactivated
if($(this).closest('.image-cont.image-cont--with-secondary-image').find('.product-block__image--show-on-hover').next().length == 0){
$(this).closest('.image-cont.image-cont--with-secondary-image').find('[data-image-index="1"]').removeClass('product-block__image--inactivated').addClass('product-block__image--show-on-hover')
}else{
$(this).closest('.image-cont.image-cont--with-secondary-image').find('.product-block__image--show-on-hover').addClass('product-block__image--inactivated').removeClass('product-block__image--show-on-hover').next().addClass('product-block__image--show-on-hover').removeClass('product-block__image--inactivated')
}
})
$(document).on('click','a.image-page-button.image-page-button--previous', function(e){
e.preventDefault();
//product-block__image--inactivated
let arr1 = $(this).closest('.image-cont.image-cont--with-secondary-image').find('.product-block__image--secondary')
console.log(arr1[arr1.length-1])
console.log($(this).closest('.image-cont.image-cont--with-secondary-image').find('.product-block__image--show-on-hover').data('image-index'))
if($(this).closest('.image-cont.image-cont--with-secondary-image').find('.product-block__image--show-on-hover').data('image-index') == '1'){
$(arr1[0]).addClass('product-block__image--inactivated').removeClass('product-block__image--show-on-hover')
$(arr1[arr1.length-1]).removeClass('product-block__image--inactivated').addClass('product-block__image--show-on-hover')
}else{
$(this).closest('.image-cont.image-cont--with-secondary-image').find('.product-block__image--show-on-hover').addClass('product-block__image--inactivated').removeClass('product-block__image--show-on-hover').prev().addClass('product-block__image--show-on-hover').removeClass('product-block__image--inactivated')
}
})