WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

fixblock

В сайдбаре имеется фиксированный блок. Как убрать фиксацию, когда при смене разрешения экрана сайдбар уходит вниз?

Фиксация реализована следующим образом:

function add_fixblock_script(){
	echo <<<EOT
<script type="text/javascript">
function getTopOffset(e) { 
	var y = 0;
	do { y += e.offsetTop; } while (e = e.offsetParent);
	return y;
}
var block = document.getElementById('fixblock'); /* fixblock - значение атрибута id блока */
if ( null != block ) {
	var topPos = getTopOffset( block )+820; ;

	window.onscroll = function() {
		var scrollHeight = Math.max( document.documentElement.scrollHeight, document.documentElement.clientHeight),

			// высота рекламного блока
			blockHeight = 600, 

			// высота подвала
			footerHeight =  300, 

			// считаем позицию, до которой блок будет зафиксирован 
			stopPos = scrollHeight - blockHeight - footerHeight; 

		var newcss = (topPos < window.pageYOffset) ? 
			'top:20px; position: fixed;' : 'position:static;';

		if ( window.pageYOffset > stopPos ) 
			newcss = 'position:static;';

		block.setAttribute( 'style', newcss );
	}
}
</script>
EOT;
}
add_action( 'wp_footer', 'add_fixblock_script' );
0
PHouse
6 лет назад 6
  • 0

    Добавь проверку на ширину экрана между строками

    var topPos = getTopOffset( block )+820; ;
    
    if (window.outerWidth >= 400) { //если ширина браузера меньше равна 400px то...
    
    	window.onscroll = function() {
    
    ....

    Гугли: как проверить ширину браузера javascript и вникай в суть

    PHouse 6 лет назад

    нашел

    if ( null != block ) {

    заменил на

    if ( null != block && window.innerWidth >= 1160 )  {
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация