javascript Issue329:20171130 - no58。予约ボタンと电话ボタンの追従
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript Issue329:20171130 - no58。予约ボタンと电话ボタンの追従相关的知识,希望对你有一定的参考价值。
import { addClass, removeClass } from '../utils/DOM'
// スクロール位置
const getScrollPosition = () => {
const posY = document.documentElement.scrollTop || document.body.scrollTop
return posY
}
// ページ内のelmのY座標
const getTargetPositionY = (elm) => {
const rect = elm.getBoundingClientRect()
return rect.top + pageYOffset
}
export default function reserveBtnSticky() {
const reserveBtnDOM = document.getElementById('js-reserve-btn')
if (reserveBtnDOM) {
const reserveBtnDOMHeight = reserveBtnDOM.getBoundingClientRect().height
const prDOM = document.getElementById('js-shop-pr')
const prDOMposY = getTargetPositionY(prDOM)
let prDOMPassFlag
// 追従ボタンがフッターに被らないためのページ最下部余白
document.body.style.paddingBottom = `${reserveBtnDOMHeight}px`
addEventListener('scroll', () => {
if (getScrollPosition() >= prDOMposY) {
prDOMPassFlag = true
}
if (prDOMPassFlag && (getScrollPosition() > prDOMposY)) {
removeClass(reserveBtnDOM, 'js-reserve-btn-fadeout')
addClass(reserveBtnDOM, 'js-reserve-btn-fadein')
} else if (prDOMPassFlag) {
removeClass(reserveBtnDOM, 'js-reserve-btn-fadein')
addClass(reserveBtnDOM, 'js-reserve-btn-fadeout')
}
})
}
}
以上是关于javascript Issue329:20171130 - no58。予约ボタンと电话ボタンの追従的主要内容,如果未能解决你的问题,请参考以下文章
javascript获取url信息的常见方法
javascript Issue84 - 20190620电话导线改善
javascript LRM_BP_issue
javascript Issue302:20171018 - 动画商品トライアル
javascript Issue319:20171101 - バナーとモーダルとAMP
javascript Issue15:20180705 - no79.CVエリア改善