olli

Irresistible : why we can't stop checking, scrolling, clicking and watching / Adam Alter

Alter, Adam L., 1980- author




olli

[ASAP] Controlling Bismuth Vanadate Morphology and Crystalline Structure through Optimization of Microwave-Assisted Synthesis Conditions

Crystal Growth & Design
DOI: 10.1021/acs.cgd.9b01517




olli

[ASAP] Controlling Microarray Feature Spreading and Response Stability on Porous Silicon Platforms by Using Alkene-Terminal Ionic Liquids and UV Hydrosilylation

Langmuir
DOI: 10.1021/acs.langmuir.0c00106




olli

Theory of one-dimensional Vlasov-Maxwell equilibria: with applications to collisionless current sheets and flux tubes / Oliver Allanson

Online Resource




olli

Searches for dijet resonances: using [square root]s = 13 TeV proton-proton collision data recorded by the ATLAS Detector at the Large Hadron Collider / Lydia Audrey Beresford

Online Resource




olli

Search for new heavy charged bosons and measurement of high-mass Drell-Yan production in proton-proton collisions / Markus Zinser

Online Resource




olli

International Linear Collider (ILC): the next mega-scale particle collider / Alexey Drutskoy

Online Resource




olli

Fundamentals and applications of heavy ion collisions: below 10 MeV/nucleon energies / R. Prasad, B. P. Singh

Online Resource




olli

Experimental particle physics: understanding the measurements and searches at the Large Hadron Collider / Deepak Kar

Online Resource




olli

Soft and hard probes of QCD topological structures in relativistic heavy-ion collisions / Shuzhe Shi

Online Resource




olli

Quantum collisions and confinement of atomic and molecular species, and photons: select proceedings of the 7th Topical Conference of ISAMP 2018 / P. C. Deshmukh, E. Krishnakumar, Stephan Fritzsche, M. Krishnamurthy, Sonjoy Majumder, editors

Online Resource




olli

Measurements of Higgs Boson Properties in Proton-Proton Collisions at ✓s =7, 8 and 13 TeV at the CERN Large Hadron Collider Ulascan Sarica

Online Resource




olli

Inclusive B Jet Production in Proton-Proton Collisions: Precision Measurement with the CMS Experiment at the LHC at √ S = 13 TeV / Patrick L.S. Connor

Online Resource




olli

Primary English for trainee teachers / [edited by] David Waugh, Wendy Jolliffe and Kate Allott




olli

Literacy : reading, writing and children's literature / Gordon Winch, Rosemary Ross Johnston, Paul March, Lesley Ljungdahl, Marcelle Holliday

Winch, Gordon, 1930- author




olli

Discoveries at the frontiers of science: from nuclear astrophysics to relativistic heavy ion collisions / Johannes Kirsch, Stefan Schramm (deceased), Jan Steinheimer-Froschauer, Horst Stöcker, editors

Online Resource




olli

Controlling [electronic resource] / Hans Jung

Jung, Hans (Business economics researcher)




olli

Übungs, und Klausurenbuch controlling [electronic resource] : Controlling und kosten, und Leistungsrechnung / von Prof. Dr. rer. pol. Peter R. Preissler, Prof. Dr. Karl Stoffel ; Tina Bonertz, herstellung

Preissler, Peter R., author




olli

Behavioral Controlling [electronic resource] : Anniversary Volume in Honor of Jürgen Weber / edited by Utz Schäffer




olli

Accounting for managers [electronic resource] : interpreting accounting information for decision-making / Paul Collier, Sandy Kizan ; with contributions by Eckhard Schumann

Collier, Paul M., author




olli

Configuring SAP ERP financials and controlling [electronic resource] / Peter Jones, John Burger ; cover designer, Ryan Sneed

Jones, Peter, author




olli

EC announces re-polling in Kairana, Bhandara Gondia post VVPAT failure

Over 11 per cent of the 10,300 VVPAT, or Voter Verifiable Paper Audit Trail, machines across 10 states had developed faults and had to be replaced




olli

Outrage: the rise of religious offence in contemporary South Asia / edited by Paul Rollier, Kathinka Frøystad and Arild Engelsen Ruud

Online Resource




olli

Protestants abroad: how missionaries tried to change the world but changed America / David A. Hollinger

Hayden Library - BV2410.H65 2017




olli

Contemporary Irish women poets: memory and estrangement / Lucy Collins

Online Resource




olli

A whole life / Robert Seethaler ; Charlotte Collins, translator

Hayden Library - PT2721.E48 G3513 2015




olli

Sonnets / Walter Benjamin ; translation, introduction, and commentary, Carl Skoggard ; foreword, Megan Ewing ; afterword, Christian Wollin

Hayden Library - PT2603.E455 A2 2017




olli

Aptamer-based fluorometric determination of chloramphenicol by controlling the activity of hemin as a peroxidase mimetic

Anal. Methods, 2020, Advance Article
DOI: 10.1039/D0AY00389A, Paper
Ling-Chen Wang, Cheng-Yi Hong, Zheng-Zhong Lin, Xiao-Mei Chen, Zhi-Yong Huang
A method for the aptamer-based determination of chloramphenicol (CAP) was developed by exploiting the peroxidase mimicking activity of hemin.
To cite this article before page numbers are assigned, use the DOI form of citation above.
The content of this RSS Feed (c) The Royal Society of Chemistry




olli

Advances in internet, data and web technologies : the 7th International Conference on Emerging Internet, Data and Web Technologies (EIDWT-2019) / Leonard Barolli, Fatos Xhafa, Zahoor Ali Khan, Hamad Odhabi, editors

International Conference on Emerging Internet, Data and Web Technologies (7th : 2019 : United Arab Emirates)




olli

Advances in network-based information systems : the 21st International Conference on Network-Based Information Systems (NBiS-2018) / Leonard Barolli, Natalia Kryvinska, Tomoya Enokido, Makoto Takizawa, editors

NBiS (Conference) (21st : 2018 : Bratislava, Slovakia)




olli

A telephone for the world: Iridium, Motorola, and the making of a global age / Martin Collins

Dewey Library - HE7797.I75 C65 2018




olli

[ASAP] Collision-Induced Unfolding Studies of Proteins and Protein Complexes using Drift Tube Ion Mobility-Mass Spectrometer

Analytical Chemistry
DOI: 10.1021/acs.analchem.0c00772




olli

[ASAP] Two-temperature Collisional-radiative Modeling of Partially Ionized O<sub>2</sub>–Ar Mixtures over 8000–10,000 K Behind Reflected Shock Waves

The Journal of Physical Chemistry A
DOI: 10.1021/acs.jpca.0c00466




olli

Beautiful Scrolling Experiences – Without Libraries

Michelle Barker appears as one of a heavenly host, coming forth with scroll in hand to pronounce an end to janky scrolljacking! Unto us a new specification is born, in the city of TimBL, and its name shall be called Scroll Snap.


Sponsor: Order any Standard paperback(s) and get a surprise gift card in the box for YOU. While supplies last, from your pals at A Book Apart!


One area where the web has traditionally lagged behind native platforms is the perceived “slickness” of the app experience. In part, this perception comes from the way the UI responds to user interactions – including the act of scrolling through content.

Faced with the limitations of the web platform, developers frequently reach for JavaScript libraries and frameworks to alter the experience of scrolling a web page – sometimes called “scroll-jacking” – not always a good thing if implemented without due consideration of the user experience. More libraries can also lead to page bloat, and drag down a site’s performance. But with the relatively new CSS Scroll Snap specification, we have the ability to control the scrolling behaviour of a web page (to a degree) using web standards – without resorting to heavy libraries. Let’s take a look at how.

Scroll Snap

A user can control the scroll position of a web page in a number of ways, such as using a mouse, touch gesture or arrow keys. In contrast to a linear scrolling experience, where the rate of scroll reflects the rate of the controller, the Scroll Snap specification enables a web page to snap to specific points as the user scrolls. For this, we need a fixed-height element to act as the scroll container, and the direct children of that element will determine the snap points. To demonstrate this, here is some example HTML, which consists of a <div> containing four <section> elements:

<div class="scroll-container">
  <section>
    <h2>Section 1</h2>
  </section>
  <section>
    <h2>Section 2</h2>
  </section>
  <section>
    <h2>Section 3</h2>
  </section>
  <section>
    <h2>Section 4</h2>
  </section>
</div>

Scroll snapping requires the presence of two main CSS properties: scroll-snap-type and scroll-snap-align. scroll-snap-type applies to the scroll container element, and takes two keyword values. It tells the browser:

  • The direction to snap
  • Whether snapping is mandatory

scroll-snap-align is applied to the child elements – in this case our <section>s.

We also need to set a fixed height on the scroll container, and set the relevant overflow property to scroll.

.scroll-container {
  height: 100vh;
  overflow-y: scroll;
  scroll-snap-type: y mandatory;
}

section {
  height: 100vh;
  scroll-snap-align: center;
}

In the above example, I’m setting the direction in the scroll-snap-type property to y to specify vertical snapping. The second value specifies that snapping is mandatory. This means that when the user stops scrolling their scroll position will always snap to the nearest snap point. The alternative value is proximity, which determines that the user’s scroll position will be snapped only if they stop scrolling in the proximity of a snap point. (It’s down to the browser to determine what it considers to be the proximity threshold.)

If you have content of indeterminate length, which might feasibly be larger than the height of the scroll container (in this case 100vh), then using a value of mandatory can cause some content to be hidden above or below the visible area, so is not recommended. But if you know that your content will always fit within the viewport, then mandatory can produce a more consistent user experience.

See the Pen Simple scroll-snap example by Michelle Barker (@michellebarker) on CodePen.

In this example I’m setting both the scroll container and each of the sections to a height of 100vh, which affects the scroll experience of the entire web page. But scroll snapping can also be implemented on smaller components too. Setting scroll snapping on the x-axis (or inline axis) can produce something like a carousel effect.

In this demo, you can scroll horizontally scroll through the sections:

See the Pen Carousel-style scroll-snap example by Michelle Barker (@michellebarker) on CodePen.

The Intersection Observer API

By implementing the CSS above, our web page already has a more native-like feel to it. To improve upon this further we could add some scroll-based transitions and animations. We’ll need to employ a bit of Javascript for this, using the Intersection Observer API. This allows us to create an observer that watches for elements intersecting with the viewport, triggering a callback function when this occurs. It is more efficient than libraries that rely on continuously listening for scroll events.

We can create an observer that watches for each of our scroll sections coming in and out of view:

const sections = [...document.querySelectorAll('section')]

const options = {
  rootMargin: '0px',
  threshold: 0.25
}

const callback = (entries) => {
  entries.forEach((entry) => {
    if (entry.intersectionRatio >= 0.25) {
      target.classList.add("is-visible");
    } else {
      target.classList.remove("is-visible");
    }
  })
}

const observer = new IntersectionObserver(callback, options)

sections.forEach((section, index) => {
  observer.observe(section)
})

In this example, a callback function is triggered whenever one of our sections intersects the container by 25% (using the threshold option). The callback adds a class of is-visible to the section if it is at least 25% in view when the intersection occurs (which will take effect when the element is coming into view), and removes it otherwise (when the element is moving out of view). Then we can add some CSS to transition in the content for each of those sections:

section .content {
  opacity: 0:
}

section.is-visible .content {
  opacity: 1;
  transition: opacity 1000ms:
}

This demo shows it in action:

See the Pen Scrolling with Intersection Observer by Michelle Barker (@michellebarker) on CodePen.

You could, of course, implement some much more fancy transition and animation effects in CSS or JS!

As an aside, it’s worth pointing out that, in practice, we shouldn’t be setting opacity: 0 as the default without considering the experience if JavaScript fails to load. In this case, the user would see no content at all! There are different ways to handle this: We could add a .no-js class to the body (which we remove on load with JS), and set default styles on it, or we could set the initial style (before transition) with JS instead of CSS.

Position: sticky

There’s one more CSS property that I think has the potential to aid the scroll experience, and that’s the position property. Unlike position: fixed, which locks the position of an element relative to the nearest relative ancestor and doesn’t change, position: sticky is more like a temporary lock. An element with a position value of sticky will become fixed only until it reaches the threshold of its parent, at which point it resumes relative positioning.

By “sticking” some elements within scroll sections we can give the impression of them being tied to the action of scrolling between sections. It’s pretty cool that we can instruct an element to respond to it’s position within a container with CSS alone!

Browser support and fallbacks

The scroll-snap-type and scroll-snap-align properties are fairly well-supported. The former requires a prefix for Edge and IE, and older versions of Safari do not support axis values. In newer versions of Safari it works quite well. Intersection Observer similarly has a good level of support, with the exception of IE.

By wrapping our scroll-related code in a feature query we can provide a regular scrolling experience as a fallback for users of older browsers, where accessing the content is most important. Browsers that do not support scroll-snap-type with an axis value would simply scroll as normal.

@supports (scroll-snap-type: y mandatory) {
  .scroll-container {
    height: 100vh;
    overflow-y: scroll;
    scroll-snap-type: y mandatory;
  }

  section {
    height: 100vh;
    scroll-snap-align: center;
  }
}

The above code would exclude MS Edge and IE, as they don’t support axis values. If you wanted to support them you could do so using a vendor prefix, and using @supports (scroll-snap-type: mandatory) instead.

Putting it all together

This demo combines all three of the effects discussed in this article.

Summary

Spending time on scroll-based styling might seem silly or frivolous to some. But I believe it’s an important part of positioning the web as a viable alternative to native applications, keeping it open and accessible. While these new CSS features don’t offer all of the control we might expect with a fully featured JS library, they have a major advantage: simplicity and reliability. By utilising web standards where possible, we can have the best of both worlds: Slick and eye-catching sites that satisfy clients’ expectations, with the added benefit of better performance for users.


About the author

Michelle is a Lead Front End Developer at Bristol web agency Atomic Smash, author of front-end blog CSS { In Real Life }, and a Mozilla Tech Speaker. She has written articles for CSS Tricks, Smashing Magazine, and Web Designer Magazine, to name a few. She enjoys experimenting with new CSS features and helping others learn about them.

More articles by Michelle




olli

Assam: 30 people, including 13 children, killed in bus-truck collision

The injured were admitted to Barpeta Medical College Hospital and Bongaigaon Civil Hospital.




olli

Drunk truck driver rams in to bus, 30 killed in collision

Incident occurred on NH-53 in Assam's Barpeta district.




olli

In search of good energy policy / edited by Marc Ozawa (Cambridge University Energy Policy Research Group), Jonathan Chaplin (Cambridge University Faculty of Divinity), Michael Pollitt (Cambridge University Judge Business School), David Reiner (Cambridge




olli

Uranium mining : market prospects and environmental consequences : a background paper for delegates to the 1988 ALP National Conference / by Chas Collison and Peter Milton

Collison, Chas




olli

JSJ 419: Google App Script with Ben Collins

Today’s guest is Ben Collins, who creates online courses, writes tutorials, and teaches workshops around G Suite and App Script. Apps Script is a scripting platform developed by Google for light-weight application development in the G Suite platform. It is an implementation of JavaScript with the express purpose of extending Google apps. App Script was started 10 years ago as a side project, and it eventually took on its own life. Ben talks about some of the different things that App Script can do and where things are stored. They discuss different ways you can get into the script and how to import external scripts from a CDN. Ben gives two examples, one simple and one sophisticated, that you might build from App Script. He talks about event triggers and how authentication is handled. He goes over the three deployment options, namely web app, app executable, sheets add-on, and deploying from the manifest. Ben talks about how triggers are managed in App Script and options for debugging. There is also the option to develop locally as well as in the browser. The show ends with him talking about how to build using HTML in App Script.

Panelists

  • Aimee Knight

  • Steve Edwards

  • Dan Shapir

Guest

  • Ben Collins

Sponsors

____________________________

"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!

____________________________________________________________

Links

Picks

Steve Edwards:

Aimee Knight:

Dan Shapir:

AJ O’Neal:

Bem Collins:




olli

Youth employment and training programs [electronic resource] : the YEDPA years / Charles L. Betsey, Robinson G. Hollister, Jr., and Mary R. Papageorgiou, editors ; Committee on Youth Employment Programs, Commission on Behavioral and Social Sciences and Ed




olli

[ASAP] Controlling the Dynamics of Ionic Liquid Thin Films via Multilayer Surface Functionalization

Journal of the American Chemical Society
DOI: 10.1021/jacs.0c03044




olli

T'gana: 10-month-old dies in car-truck collision

A 10-month-old boy, Yuvraj, died and seven of his kin sustained injuries after a DCM truck rammed into their car at Chivvemula in Suryapet.




olli

Digitization in controlling: forecasting processes through automation / Andre Große Kamphake

Online Resource




olli

Scripture and resistance / edited by Jione Havea ; foreword by Collin Cowan




olli

A place at His table : a Biblical exploration of faith, sexuality, and the kingdom of God / Joel Hollier

Hollier, Joel, author




olli

Jesus and the politics of mammon / Hollis Phelps

Phelps, Hollis, author




olli

Legally straight: sexuality, childhood, and the cultural value of marriage / Joe Rollins

Barker Library - KF539.R65 2018




olli

Parabolic wave equations with applications / Michael D. Collins, William L. Siegmann

Online Resource




olli

The environmental impact of Sieben Linden ecovillage / Andrea Bocco, Martina Gerace, Susanna Pollini

Rotch Library - HT169.576.G3 B63 2019




olli

Playground / James Mollison ; foreword Jon Ronson

Rotch Library - LB3251.M65 2015