Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bharbara Souza

Menu Dropdown pára de funcionar com botão de "Subir ao Topo"

Recommended Posts

No meu blog tem um menu dropdown instalado,

mas toda vez que eu tento instalar o código de "subir ao topo"

ele pára de funcionar.

 

Eis o código do botão:

 

<script type='text/javascript' language='Javascript'>
var scrolltotop={
//startline: Integer. Number of pixels from top of doc scrollbar is scrolled before showing control
//scrollto: Keyword (Integer, or "Scroll_to_Element_ID"). How far to scroll document up when control is clicked on (1=top).
setting: {startline:100, scrollto: 0, scrollduration:1000, fadeduration:[500, 100]},
controlHTML: '<img src="http://1.bp.blogspot.com/-_D_P2qDHH1M/UlHKu14vvoI/AAAAAAAAKgk/IZ5Hlb4uCPE/s1600/topo8.png"/>' //HTML for control, which is auto wrapped in DIV w/ ID="topcontrol"
controlattrs: {offsetx:5, offsety:5}, //offset of control relative to right/ center of window corner
anchorkeyword: '#top', //Enter href value of HTML anchors on the page that should also act as "Scroll Up" links
state: {isvisible:false, shouldvisible:false},
scrollup:function(){
if (!this.cssfixedsupport) //if control is positioned using JavaScript
this.$control.css({opacity:0}) //hide control immediately after clicking it
var dest=isNaN(this.setting.scrollto)? this.setting.scrollto : parseInt(this.setting.scrollto)
if (typeof dest=="string" && jQuery('#'+dest).length==1) //check element set by string exists
dest=jQuery('#'+dest).offset().top
else
dest=0
this.$body.animate({scrollTop: dest}, this.setting.scrollduration);
},
keepfixed:function(){
var $window=jQuery(window)
var controlx=$window.scrollLeft() + $window.width() - this.$control.width() - this.controlattrs.offsetx
var controly=$window.scrollTop() + $window.height() - this.$control.height() - this.controlattrs.offsety
this.$control.css({left:controlx+'px', top:controly+'px'})
},
togglecontrol:function(){
var scrolltop=jQuery(window).scrollTop()
if (!this.cssfixedsupport)
this.keepfixed()
this.state.shouldvisible=(scrolltop>=this.setting.startline)? true : false
if (this.state.shouldvisible && !this.state.isvisible){
this.$control.stop().animate({opacity:1}, this.setting.fadeduration[0])
this.state.isvisible=true
}
else if (this.state.shouldvisible==false && this.state.isvisible){
this.$control.stop().animate({opacity:0}, this.setting.fadeduration[1])
this.state.isvisible=false
}
},
init:function(){
jQuery(document).ready(function($){
var mainobj=scrolltotop
var iebrws=document.all
mainobj.cssfixedsupport=!iebrws || iebrws && document.compatMode=="CSS1Compat" && window.XMLHttpRequest //not IE or IE7+ browsers in standards mode
mainobj.$body=(window.opera)? (document.compatMode=="CSS1Compat"? $('html') : $('body')) : $('html,body')
mainobj.$control=$('<div id="topcontrol">'+mainobj.controlHTML+'</div>')
.css({position:mainobj.cssfixedsupport? 'fixed' : 'absolute', bottom:mainobj.controlattrs.offsety, right:mainobj.controlattrs.offsetx, opacity:0, cursor:'pointer'})
.attr({title:'Subir ao Topo!'})
.click(function(){mainobj.scrollup(); return false})
.appendTo('body')
if (document.all && !window.XMLHttpRequest && mainobj.$control.text()!='') //loose check for IE6 and below, plus whether control contains any text
mainobj.$control.css({width:mainobj.$control.width()}) //IE6- seems to require an explicit width on a DIV containing text
mainobj.togglecontrol()
$('a[href=' + mainobj.anchorkeyword +']').click(function(){
mainobj.scrollup()
return false
})
$(window).bind('scroll resize', function(e){
mainobj.togglecontrol()
})
})
}
}
scrolltotop.init()
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Boa Noite!

 

Peço que utilize este código...

JAVASCRIPT

var baseUrl = '';
$(document).ready(function () {
	$("a#anchor").anchorAnimate()
});

jQuery.fn.anchorAnimate = function (a) {
    a = jQuery.extend({
        speed: 600
    }, a);
    return this.each(function () {
        var b = this;
        $(b).click(function (e) {
            e.preventDefault();
            var d = window.location.href;
            var f = $(b).attr("href");
            var c = $(f).offset().top;
            $("html:not(:animated),body:not(:animated)").animate({
                scrollTop: c
            }, a.speed, function () {
                window.location.hash = f
            });
            return false
        })
    })
}; 

HTML

<a href="body" id="anchor">Topo</a>

Caso não for isso poderia ser mais especifico?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite!

 

Em que área do html eu utilizo esse código?

É para substituir ou apenas incluir?


Esse é o HMTL do menu Dropdown, instalado na plataforma blogger, no corpo do meu template, e até então funcionando normalmente:

<nav id='nav'>
<ul class='menunav' id='navinti'>
<li class='mhome'><a expr:href='data:blog.homepageUrl'>Início</a></li>
<li class='dgnsub'><a href='#'>Textos</a>
<ul class='sub-menu hidden'>
<li><a href='#'>Eu e você</a></li>
<li><a href='#'>Entre Pai e Filha</a></li>
<li><a href='#'>Diário de Bordo</a></li>
<li><a href='#'>Beauty</a></li>
<li><a href='#'>[18+]</a></li></ul>
</li>
<li><a href='#'>Colaboradores</a></li>
<li><a href='#'>Contato</a></li>
<li><a href='#'>A Bhá!</a></li>
</ul>
<div id='navmobi'>

Então tentei incluir um widget em java, com botão de voltar ao topo, código a seguir:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type='text/javascript' language='Javascript'>
var scrolltotop={
//startline: Integer. Number of pixels from top of doc scrollbar is scrolled before showing control
//scrollto: Keyword (Integer, or "Scroll_to_Element_ID"). How far to scroll document up when control is clicked on (1=top).
setting: {startline:100, scrollto: 0, scrollduration:1000, fadeduration:[500, 100]},
controlHTML: '<img src="http://1.bp.blogspot.com/-_D_P2qDHH1M/UlHKu14vvoI/AAAAAAAAKgk/IZ5Hlb4uCPE/s1600/topo8.png"/>', //HTML for control, which is auto wrapped in DIV w/ ID="topcontrol"
controlattrs: {offsetx:5, offsety:5}, //offset of control relative to right/ center of window corner
anchorkeyword: '#top', //Enter href value of HTML anchors on the page that should also act as "Scroll Up" links
state: {isvisible:false, shouldvisible:false},
scrollup:function(){
if (!this.cssfixedsupport) //if control is positioned using JavaScript
this.$control.css({opacity:0}) //hide control immediately after clicking it
var dest=isNaN(this.setting.scrollto)? this.setting.scrollto : parseInt(this.setting.scrollto)
if (typeof dest=="string" && jQuery('#'+dest).length==1) //check element set by string exists
dest=jQuery('#'+dest).offset().top
else
dest=0
this.$body.animate({scrollTop: dest}, this.setting.scrollduration);
},
keepfixed:function(){
var $window=jQuery(window)
var controlx=$window.scrollLeft() + $window.width() - this.$control.width() - this.controlattrs.offsetx
var controly=$window.scrollTop() + $window.height() - this.$control.height() - this.controlattrs.offsety
this.$control.css({left:controlx+'px', top:controly+'px'})
},
togglecontrol:function(){
var scrolltop=jQuery(window).scrollTop()
if (!this.cssfixedsupport)
this.keepfixed()
this.state.shouldvisible=(scrolltop>=this.setting.startline)? true : false
if (this.state.shouldvisible && !this.state.isvisible){
this.$control.stop().animate({opacity:1}, this.setting.fadeduration[0])
this.state.isvisible=true
}
else if (this.state.shouldvisible==false && this.state.isvisible){
this.$control.stop().animate({opacity:0}, this.setting.fadeduration[1])
this.state.isvisible=false
}
},
init:function(){
jQuery(document).ready(function($){
var mainobj=scrolltotop
var iebrws=document.all
mainobj.cssfixedsupport=!iebrws || iebrws && document.compatMode=="CSS1Compat" && window.XMLHttpRequest //not IE or IE7+ browsers in standards mode
mainobj.$body=(window.opera)? (document.compatMode=="CSS1Compat"? $('html') : $('body')) : $('html,body')
mainobj.$control=$('<div id="topcontrol">'+mainobj.controlHTML+'</div>')
.css({position:mainobj.cssfixedsupport? 'fixed' : 'absolute', bottom:mainobj.controlattrs.offsety, right:mainobj.controlattrs.offsetx, opacity:0, cursor:'pointer'})
.attr({title:'Subir ao Topo!'})
.click(function(){mainobj.scrollup(); return false})
.appendTo('body')
if (document.all && !window.XMLHttpRequest && mainobj.$control.text()!='') //loose check for IE6 and below, plus whether control contains any text
mainobj.$control.css({width:mainobj.$control.width()}) //IE6- seems to require an explicit width on a DIV containing text
mainobj.togglecontrol()
$('a[href="' + mainobj.anchorkeyword +'"]').click(function(){
mainobj.scrollup()
return false
})
$(window).bind('scroll resize', function(e){
mainobj.togglecontrol()
})
})
}
}
scrolltotop.init()
</script>

A partir daí,

o Menu Dropdown parou de listar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá novamente,

 

Coloque o código HTML que lhe passei em qualquer lugar que você desejar, e remova o seus códigos do botão ir ao topo e deixa somente os meus ativos.

 

 

Até mais,

Passar bem. :kiss:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou :(

Eu acho que é algum problema com a configuração do menu porque

Ele também trava com a instalação de outros widgets.

Acho que está faltando algum comando no código dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Blogueira,

 

Acredito que o seu blog já utilizava o JQuery, e você colocou o JQuery novamente.

 

Tente fazer a mesma coisa, só que sem a tag do jquery

 

Apague esta linha:

 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

 

Se não funcionar me responda as seguinte perguntas:

- O "Voltar ao topo" estava funcionando?

- Só foi o menu que parou?

- Você pode colocar o link do seu blog?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.