jQuery scroll makes sticky header jump a bit

时间:2017-08-30 20:04:24

标签: jquery html css scroll header

I have a problem with sticky header and navigation links, since they both use scrollTop functions.

First one is for a header - it shrinks down when page is being scrolled after 50px. Second one is used with navigation links - it uses scroll function to go to certain page.

Problems is when I click any navigation link, my logo jumps / blinks for a bit and I'm not sure why is that happening? I've recreated this problem in JSFiddle (link down bellow) and this is the code:

HTML:

import numpy as np

frame = np.array([ [1,0],
                   [0,0],
                   [1,0] ])

weights=np.array(frame)>0

print("weights:")
print(weights)

print("average without weights:")
print((np.average(frame, axis=0)))

print("average with weights:")
print((np.average(frame, axis=0, weights=weights)))

jQuery:

weights:
[[ True False]
 [False False]
 [ True False]]
average without weights:
[ 0.66666667  0.        ]
average with weights:
Traceback (most recent call last):
File "C:\Users\myuser\project\test.py", line 123, in <module>
print((np.average(frame, axis=0, weights=weights)))
File "C:\Users\myuser\Miniconda3\envs\myenv\lib\site-packages\numpy\lib\function_base.py", line 1140, in average
"Weights sum to zero, can't be normalized")
ZeroDivisionError: Weights sum to zero, can't be normalized

CSS:

axis=0

Fiddle for reference: JSFiddle

Edit: click on page1 link and than on page2 to see it in action.

1 个答案:

答案 0 :(得分:1)

The glitch happens because the page wants to jump to the top of the page, which is expected behaviour when you put the empty anchor Traceback (most recent call last): File "C:\Users\TBMEPYG\Desktop\vamo.py", line 9, in <module> data = driver.find_element_by_name('Dt_Ref') File "C:\Users\TBMEPYG\AppData\Local\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 426, in find_element_by_name return self.find_element(by=By.NAME, value=name) File "C:\Users\TBMEPYG\AppData\Local\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 832, in find_element 'value': value})['value'] File "C:\Users\TBMEPYG\AppData\Local\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 297, in execute self.error_handler.check_response(response) File "C:\Users\TBMEPYG\AppData\Local\Continuum\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: {"request":{"headers":{"Accept":"application/json","Accept-Encoding":"identity","Connection":"close","Content-Length":"89","Content-Type":"application/json;charset=UTF-8","Host":"127.0.0.1:61820","User-Agent":"Python http auth"},"httpVersion":"1.1","method":"POST","post":"{\"using\": \"name\", \"value\": \"Dt_Ref\", \"sessionId\": \"e61dd170-8dcf-11e7-a019-41573671066b\"}","url":"/element","urlParsed":{"anchor":"","query":"","file":"element","directory":"/","path":"/element","relative":"/element","port":"","host":"","password":"","user":"","userInfo":"","authority":"","protocol":"","source":"/element","queryKey":{},"chunks":["element"]},"urlOriginal":"/session/e61dd170-8dcf-11e7-a019-41573671066b/element"}} Screenshot: available via screen as href. It points to the top of the page.

Use <html> <head> <script> function test(inp){ document.getElementById(inp).value = document.getElementById(inp).value; } </script> </head> <body> <input id="search" type="text" value="mycurrtext" size="30" onfocus="test(this.id);" onclick="test(this.id);" name="search"/> </body> </html> to prevent the default behaviour of a link (documentation). Like so:

<input id="search" type="text" value="mycurrtext" size="30" 
   onfocus="test(this.id);" onclick="test(this.id);" name="search"/>

function test(inp){
        document.getElementById(inp).value = document.getElementById(inp).value;  
    }

Updated fiddle